javascript - 为什么这个正则表达式在有或没有连字符/破折号转义的情况下都可以工作

标签 javascript regex perl

给定以下字符串:

blablabla
X-FOO-BAR:blaaaa
blafoobla

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

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

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

我不完全理解为什么没有连字符的正则表达式在这种情况下有效。有人可以帮我解决这个问题吗?我已经在 Perl 和 javascript 正则表达式引擎中测试了它。

干杯!

最佳答案

当连字符位于字符类之外时,无需对其进行转义。在字符类中,必须将连字符放在开头或最后。但如果你把它放在中间,转义可能有效,也可能无效。

关于javascript - 为什么这个正则表达式在有或没有连字符/破折号转义的情况下都可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24700927/

相关文章:

python - Mistune 内联 Lexar 重新编译帮助

Perl fork 套接字服务器,当客户端断开连接时停止接受连接

javascript - requirejs with angular - 不解决 Controller 与嵌套路由的依赖关系

javascript - 在 module.config 中使用 $filter 服务

regex - 如何从 Lumen 路由器中的 "/api"-route 中排除 "any"(每个正则表达式)?

python - 根据查找批量重命名文件

perl - 为什么 cygwin 上的 Git.pm 会提示 'Out of memory during "large"request?

java - java中有类似javascript绑定(bind)的函数吗

javascript - 下划线查找对象值的最小值和最大值

regex - 快速正则表达式匹配