Рубиновый и негативный просмотр не удается [дублировать]

Если у вас много полей в инструкции select, и вы хотите получить последнее значение для всех этих полей с помощью оптимизированного кода:

select * from
(select * from table_name
order by id,rev desc) temp
group by id 
3
задан Wiktor Stribiżew 9 July 2015 в 15:58
поделиться

2 ответа

Вы должны удалить группы захвата или сделать их не захватывающими:

text = " -45.124, 1124.325"
puts text.scan(/[+-]?\d+(?:\.\d+)?/)

См. demo , вывод:

-45.124
1124.325

См. scan documentation :

Если шаблон не содержит групп, каждый отдельный результат состоит из согласованной строки $&. Если шаблон содержит группы, каждый отдельный результат сам по себе является массивом, содержащим одну запись для каждой группы.

Ну, если вам также нужно сопоставить такие поплавки, как .04 вы можете использовать [+-]?\d*\.?\d+. См. еще одно демо

5
ответ дан Wiktor Stribiżew 5 September 2018 в 11:07
поделиться
([+-]?\d+\.\d+)

предполагает, что перед десятичной точкой

есть ведущая цифра, см. демонстрацию в Rubular

1
ответ дан garyh 5 September 2018 в 11:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: