регулярное выражение ruby ​​не работает с match - PullRequest
0 голосов
/ 10 марта 2010
text = "I fixed bug #1234 and #7895 "
regex = /#(\d*)/
m = regex.match(text)
puts m.inspect #<MatchData "#1234" "1234">

В вышеприведенном случае, почему я не вижу 7895? Какое правильное решение?

1 Ответ

4 голосов
/ 10 марта 2010

регулярные выражения соответствуют только первому вхождению (или вообще не соответствуют). #(\d*) сначала соответствует #1234, так что возвращается фрагмент текста.

Если вам нужно несколько совпадений, то есть вы хотите искать строку, использовать String#scan или что-то подобное.

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