Dmy*_*iak 5 ruby regex ruby-on-rails
在Ruby中,两个表达式似乎都做类似的事情:
'it' =~ /^it$/ # 0
'it' =~ /\Ait\Z/ # 0
# but
/^it$/ == /\Ait\Z/ # false
Run Code Online (Sandbox Code Playgroud)
所以我想知道^- \A和$- 之间有什么区别,\Z以及如何选择使用哪一个?
Mar*_*ers 10
只有当您匹配的字符串可以包含新行时,差异才很重要.\A匹配字符串的开头.^匹配字符串的开头或紧接在新行之后.类似地,\Z只匹配字符串的结尾,但$匹配字符串的结尾或行的结尾.
例如,正则表达式/^world$/匹配"hello \nworld"的第二行,但表达式/\Aworld\Z/无法匹配.
在正则表达式引擎,支持多行的正则表达式,^和$通常用于开始和结束行标志.
\A并\Z用于字符串标记的开始和结束.
例如,字符串:
Hello, my names
are Bob and James
Run Code Online (Sandbox Code Playgroud)
将匹配ames$两次(对于名字和詹姆斯)但ames\Z只有一次(对于詹姆斯).