Ruby регулярное выражение найти и заменить число внутри строки - PullRequest
2 голосов
/ 30 марта 2012

Как мне найти и заменить '49', если '49' будет неизвестным идентификатором, используя ruby ​​на рельсах?

str = "select * from clients where client_id = 49 order by registration_date asc"
str = str.gsub(/someRegExThatFinds49/, replacement_id) # <------ Here's the concept

Ищем правильный синтаксис и пример.Спасибо.

Ответы [ 3 ]

2 голосов
/ 30 марта 2012

Это будет работать, используя копию строки:

new_str = str.gsub(/\d+/, replacement_id)

Или, если вы предпочитаете делать это на месте (изменяя строку напрямую)

str.gsub!(/\d+/, replacement_id)

Иэн.

1 голос
/ 30 марта 2012
unknown_id = 49
puts "hello4849gone".gsub(/#{unknown_id}/, "HERE") #=> hello48HEREgone
0 голосов
/ 30 марта 2012
str = str.gsub(/49/, replacement_id)

Или используйте самообновляющуюся версию:

str.gsub!(/49/, replacement_id)

Также проверьте Rubular , который позволяет вам проверять регулярные выражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...