我不是Ruby程序员,但在阅读广泛的Ruby on Rails security guide时,我注意到了这一部分:
Ruby正则表达式中常见的缺陷是将字符串的开头和结尾与^和$匹配,而不是\ A和\ z。
有谁知道这只是美学问题还是其他问题?我问,因为我只使用了使用^
和$
的语言。
答案 0 :(得分:51)
这不是Ruby特有的; \A
和\Z
与^
和$
不同。 ^
和$
是行锚点的开头和结尾,而\A
和\Z
是字符串<的开头和结尾/ strong>锚点。
Ruby与其他语言的不同之处在于它自动使用“多行模式”(这使得前面提到的每行匹配^
和$
的行为)用于正则表达式,但在大多数其他版本中需要自己启用它,这可能是该文章包含警告的原因。