为什么Ruby的正则表达式使用\ A和\ z而不是^和$?

时间:2010-09-02 23:27:56

标签: ruby-on-rails ruby regex

我不是Ruby程序员,但在阅读广泛的Ruby on Rails security guide时,我注意到了这一部分:

  

Ruby正则表达式中常见的缺陷是将字符串的开头和结尾与^和$匹配,而不是\ A和\ z。

有谁知道这只是美学问题还是其他问题?我问,因为我只使用了使用^$的语言。

1 个答案:

答案 0 :(得分:51)

这不是Ruby特有的; \A\Z^$不同。 ^$锚点的开头和结尾,而\A\Z字符串<的开头和结尾/ strong>锚点。

Ruby与其他语言的不同之处在于它自动使用“多行模式”(这使得前面提到的每行匹配^$的行为)用于正则表达式,但在大多数其他版本中需要自己启用它,这可能是该文章包含警告的原因。

参考:http://www.regular-expressions.info/anchors.html