当我为各种目的查找正则表达式时,我看到人们使用/
,#
,!
和~
等分隔符。这些做了什么不同,或者它们是否具有相同的效果?
答案 0 :(得分:2)
他们没有做任何不同的事情,他们划分正则表达式(用于需要它的语言)。
区别在于:正则表达式中该角色的行为确实发生了变化。正则表达式分隔符成为一个额外的特殊字符,需要进行转义(==>选择正则表达式中不需要的分隔符!)。
旁注:在php中,您甚至可以使用正则表达式特殊字符(如+
或|
)作为正则表达式分隔符,但这仅适用于正则表达式中不需要该字符的情况(不推荐) )。 related answer
答案 1 :(得分:1)
在某些语言中,您可以选择分隔符,而在其他语言中则不能。
每次出现在正则表达式中时,都必须转义该分隔符。选择表达式中没有出现的分隔符可以减少转义的需要,使表达式更易于阅读。
以下两个正则表达式是相同的,除了第一个使用/
作为分隔符,而第二个使用#
:
/http:\/\/example\.com\/.*\/foo\// #http://example\.com/.*/foo/#