javascript - 为什么我的正则表达式在 PHP 中有效,但在 JavaScript 中无效?

标签 javascript regex

我有一个自己创建的正则表达式,我目前正在 PHP 中运行。虽然当我将它合并到 JavaScript 时,它拒绝工作。我也在 Python 中尝试过,它运行得非常好。

正则表达式:

@[[](.[^]]+)[]][()](\d+)[)]

Testing in PHP, and working

Testing in JavaScript, and not working

最佳答案

JavaScript 不会自动转义您的 ]

这将帮助您获得直观的想法:

PCRE:

PCRE

JS:

JS

python :

Python

所以要解决这个问题,你需要转义括号

@[[](.[^\]]+)[\]][()](\d+)[)]
//      ^     ^  

编写此正则表达式的最佳方法是尽量减少字符类的使用:

@\[(.[^\]]+)\][()](\d+)\)

这就是为什么最好避开这些东西而不是依赖怪癖。

我通过 regex101 生成了这些图像.

关于javascript - 为什么我的正则表达式在 PHP 中有效,但在 JavaScript 中无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32030834/

相关文章:

javascript - 可见窗口高度而不是 $(window).height();

c++ - wregex 有什么问题?wregex 不支持 native c++ 中的 [group] 功能?

javascript - 匹配字符串中的所有 URL 并在 JavaScript 中返回数组

javascript - childObj.prototype = Object.create(parentObj.prototype) 和 childObj.prototype = ParentObj.prototype 有什么区别?

php - 引用不存在的子模式

用于解析或验证 Base64 数据的正则表达式

java - 将全部替换为具有正则表达式通配符的字符串

javascript - 选择 Typescript、D3.js 函数重载和返回类型

javascript - 将 json 列表动态绑定(bind)到 HTML

javascript - 提交表单数据后如何转移到另一页的部分?