1

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

4

2 回答 2

2

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

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

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

于 2012-05-25T06:06:16.223 回答
1

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

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

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

/http:\/\/example\.com\/.*\/foo\//
#http://example\.com/.*/foo/#
于 2012-05-25T05:26:42.443 回答