代码之家  ›  专栏  ›  技术社区  ›  treeface

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

  •  29
  • treeface  · 技术社区  · 15 年前

    我不是一个Ruby程序员,但当我读到 Ruby on Rails security guide ,我注意到这一部分:

    Ruby_的正则表达式中的一个常见缺陷是匹配字符串_的开头和结尾是^和$而不是\a和\z。

    有人知道这是美学问题还是其他问题?我问是因为我只使用了 ^ $ .

    1 回复  |  直到 10 年前
        1
  •  51
  •   Daniel Vandersluis    15 年前

    这不是Ruby特有的; \A \Z 不是同一件事 ^ $ . ^ $ 是的开始和结束 线 锚,而 A \z 是的开始和结束 一串 锚。

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

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