仅在Ruby正则表达式中匹配行开头

8

我有一个字符串变量,其中包含多个换行符,并且我想测试该字符串的开头是否匹配一个正则表达式。但是,当我使用^字符时,它会将其与从每个换行符处开始的文本进行匹配。

我希望这个能够匹配成功:

"foo\nbar" =~ /^foo/

and I want this to not match

"bar\nfoo" =~ /^foo/

我找不到一个修饰符,使得 ^ (或其他任何字符)只匹配字符串的开头。非常感谢您的帮助。
2个回答

12
在Ruby中,插入符号(^)和美元符号($)始终在换行符前后进行匹配。 Ruby没有修改器来更改这一点。使用\A和\Z匹配字符串的开头或结尾。参见:http://www.regular-expressions.info/ruby.html

1

来自《Ruby编程》

'\A 
   Matches the beginning of the string. '

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接