给定以下字符串:
blablabla
X-FOO-BAR:blaaaa
blafoobla
这两个正则表达式都删除了第二行
s/X-FOO-BAR.*?$//gismo
s/X\-FOO\-BAR.*?$//gismo
我不完全理解为什么没有连字符的正则表达式在这种情况下有效。有人可以帮我解决这个问题吗?我已经在 Perl 和 javascript 正则表达式引擎中测试了它。
干杯!
最佳答案
当连字符位于字符类之外时,无需对其进行转义。在字符类中,必须将连字符放在开头或最后。但如果你把它放在中间,转义可能有效,也可能无效。
关于javascript - 为什么这个正则表达式在有或没有连字符/破折号转义的情况下都可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24700927/