regex - 正则表达式 anchor list

标签 regex anchor

  • ^据说匹配行首 ,但它在 "\n" 之后不匹配, "\r""\r\n" .不过,它匹配字符串的开头。它在什么意义上匹配行首,它与 \A 有何不同? ?
  • $据说匹配行尾 ,但它在 "\n" 之前不匹配, "\r""\r\n" .但是,它匹配字符串的结尾。它在什么意义上匹配行尾,它与 \z 有何不同? ?
  • \Z ,不像 \z , 匹配在 "\n" 之前如果那是在字符串的末尾。在我看来 \A\z是自然配对的概念,和\Z是一个奇怪的。为什么会这样\Z\z按原样定义,而不是相反?并且,您想什么时候使用 \Z ?

  • 你能用例子来说明上面的内容吗?
    如果语言/标准之间的差异很重要,列出它们会很有帮助。

    最佳答案

    不同的是^$ anchor 可以有修改的行为。

    multiline模式开启,^$ anchor 断言行的开头和结尾。

    multiline模式关闭,^$ anchor 断言字符串的开头和结尾。

    大多数正则表达式实现都有 multiline模式。

    对于 Ruby、Perl 或 Javascript,它是用 m 定义的。修饰符。例如/pattern/m
    在 .NET 中,它定义为 (?m)在模式本身内部,或来自 RegexOptions.Multiline枚举。

    回答你的第三个问题...
    \A - 匹配必须出现在字符串的开头。
    \Z - 匹配必须出现在字符串的末尾或之前 \n在字符串的末尾。
    \z - 匹配必须出现在字符串的末尾。

    这三个是不受任何修饰符影响的常量。我同意 \A\z似乎是不合逻辑的配对。对我来说也没有多大意义。但是,如果您可能有想要忽略的尾随换行符,则 \Z可能是首选。

    关于regex - 正则表达式 anchor list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5451453/

    相关文章:

    javascript - 如何将数据添加到 HTML 中的 anchor 标记并使用 jQuery 访问它?

    html - 带有散列片段的 anchor 没有导航到匹配的 id

    c++ - 这是 C++11 正则表达式错误我还是编译器?

    python - 竖线文字如何确定python中的正式正则表达式?

    java - 如何使用特殊字符在字符串中公开

    javascript - "&lang"在 URL 中被误解

    css - 使用带视差滚动的 anchor

    Javascript 正则表达式模式捕获 - 所有可能的组合

    python - 分割行中的元素,如何用更新后的值重新连接它们

    Javascript点击事件停止 anchor href链接