为什么这个正则表达式可以使用和不使用连字符/破折号

时间:2014-07-11 15:08:20

标签: javascript regex perl

给出以下字符串:

blablabla
X-FOO-BAR:blaaaa
blafoobla

这两个正则表达式都删除了第二行

  1. s/X-FOO-BAR.*?$//gismo

  2. s/X\-FOO\-BAR.*?$//gismo

  3. 我并不完全理解为什么没有连字符的正则表达式在这种情况下起作用。有人可以为我清除这个吗?我已经在perl和javascript正则表达式引擎中对它进行了测试。

    干杯!

1 个答案:

答案 0 :(得分:2)

当它在字符类之外时,你不需要转义连字符。在角色类中,您必须在开始或最后放置hypen。但如果你把它放在中间,逃脱可能会起作用,也可能不起作用。