Соответствуйте только началу строки в Ruby regexp

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

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

"foo\nbar" =~ /^foo/

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

"bar\nfoo" =~ /^foo/

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

7
задан Bart Kiers 20 January 2010 в 19:21
поделиться

2 ответа

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

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

12
ответ дан 6 December 2019 в 19:36
поделиться

От «Программирования Ruby»

'\A 
   Matches the beginning of the string. '
1
ответ дан 6 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

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