Соответствует только началу строки в регулярном выражении Ruby - PullRequest
7 голосов
/ 20 января 2010

У меня есть строковая переменная с несколькими символами новой строки, и я хотел бы проверить, соответствует ли начало строки регулярному выражению. Однако, когда я использую символ ^, он сопоставляется с текстом, начинающимся с каждой новой строки.

Я хочу, чтобы это соответствовало:

"foo\nbar" =~ /^foo/

и я хочу, чтобы это не совпадало

"bar\nfoo" =~ /^foo/

Я не могу найти модификатор, который делает символ ^ (или любой другой) совпадающим только с началом строки. Любая помощь с благодарностью.

Ответы [ 2 ]

12 голосов
/ 20 января 2010

В Ruby знак каретки и доллар всегда совпадают до и после перевода строки.В Ruby нет модификатора, чтобы изменить это.Используйте \ A и \ Z для сопоставления в начале или конце строки.

См .: http://www.regular -expressions.info / ruby.html

1 голос
/ 20 января 2010

Из "Ruby программирования"

'\A 
   Matches the beginning of the string. '
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...