2010-01-20 2 views
7

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

Я хочу, чтобы это матч:

"foo\nbar" =~ /^foo/ 

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

"bar\nfoo" =~ /^foo/ 

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

ответ

12

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

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

1

С "Программирование Рубин"

'\A 
    Matches the beginning of the string. ' 
Смежные вопросы