【问题标题】:The Different Delimiters of Regex正则表达式的不同分隔符
【发布时间】:2012-05-25 05:23:29
【问题描述】:

当我出于各种目的查找正则表达式时,我看到人们使用 /#!~ 等分隔符。这些有什么不同,还是有相同的效果?

【问题讨论】:

    标签: regex delimiter


    【解决方案1】:

    他们没有做任何不同的事情,他们界定了正则表达式(在需要它的语言中)。

    不同之处在于:该字符在正则表达式中的行为确实发生了变化。正则表达式分隔符成为额外的特殊字符,需要转义(==> 选择一个您在正则表达式中不需要的分隔符!)。

    旁注:在 php 中,您甚至可以使用像 +| 这样的正则表达式特殊字符作为正则表达式分隔符,但这仅在您不需要正则表达式中的该字符时才有效(不推荐)。 related answer

    【讨论】:

      【解决方案2】:

      在某些语言中,您可以选择分隔符,而在其他语言中则不能。

      每次出现在正则表达式中时,您都必须转义该分隔符。选择表达式中不出现的分隔符可减少转义,使表达式更易于阅读。

      以下两个正则表达式相同,只是第一个使用/作为分隔符,而第二个使用#

      /http:\/\/example\.com\/.*\/foo\// #http://example\.com/.*/foo/#

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-06
        • 1970-01-01
        相关资源
        最近更新 更多