【发布时间】:2012-05-25 05:23:29
【问题描述】:
当我出于各种目的查找正则表达式时,我看到人们使用 /、#、! 和 ~ 等分隔符。这些有什么不同,还是有相同的效果?
【问题讨论】:
当我出于各种目的查找正则表达式时,我看到人们使用 /、#、! 和 ~ 等分隔符。这些有什么不同,还是有相同的效果?
【问题讨论】:
他们没有做任何不同的事情,他们界定了正则表达式(在需要它的语言中)。
不同之处在于:该字符在正则表达式中的行为确实发生了变化。正则表达式分隔符成为额外的特殊字符,需要转义(==> 选择一个您在正则表达式中不需要的分隔符!)。
旁注:在 php 中,您甚至可以使用像 + 或 | 这样的正则表达式特殊字符作为正则表达式分隔符,但这仅在您不需要正则表达式中的该字符时才有效(不推荐)。 related answer
【讨论】:
在某些语言中,您可以选择分隔符,而在其他语言中则不能。
每次出现在正则表达式中时,您都必须转义该分隔符。选择表达式中不出现的分隔符可减少转义,使表达式更易于阅读。
以下两个正则表达式相同,只是第一个使用/作为分隔符,而第二个使用#:
【讨论】: