正则表达式的不同分隔符

时间:2012-05-25 05:23:30

标签: regex delimiter

当我为各种目的查找正则表达式时,我看到人们使用/#!~等分隔符。这些做了什么不同,或者它们是否具有相同的效果?

2 个答案:

答案 0 :(得分:2)

他们没有做任何不同的事情,他们划分正则表达式(用于需要它的语言)。

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

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

答案 1 :(得分:1)

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

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

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

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