当我出于各种目的查找正则表达式时,我看到人们使用诸如/
、#
、!
和等分隔符~
。这些有什么不同,还是有相同的效果?
问问题
150 次
2 回答
2
他们没有做任何不同的事情,他们界定了正则表达式(在需要的语言中)。
不同之处在于:正则表达式中该字符的行为确实发生了变化。正则表达式分隔符成为一个额外的特殊字符,需要转义(==> 选择一个您在正则表达式中不需要的分隔符!)。
旁注:在 php 中,您甚至可以使用正则表达式特殊字符,例如+
或|
作为正则表达式分隔符,但这仅在您不需要正则表达式中的该字符时才有效(不推荐)。相关答案
于 2012-05-25T06:06:16.223 回答
1
在某些语言中,您可以选择分隔符,而在其他语言中则不能。
每次出现在正则表达式中时,您都必须转义该分隔符。选择表达式中不出现的分隔符可减少转义的需要,使表达式更易于阅读。
以下两个正则表达式是相同的,除了第一个/
用作分隔符,而第二个使用#
:
/http:\/\/example\.com\/.*\/foo\// #http://example\.com/.*/foo/#
于 2012-05-25T05:26:42.443 回答