javascript - 用于匹配函数参数的正则表达式

标签 javascript regex

我的页面上有以下文字:

pageTracker._addItem("2040504","JACQXSPINKASS-TX4-8","Jacq Socks","","9.00000","1.0");
pageTracker._addItem("2040504","FTWCLSNOCOLOURONE SIZE","Footwear Cleaner","","8.00000","1.0");

我只想使用 javascripts match() 函数提取每一行括号内的参数。我有以下正则表达式,但不太正确:

/\b_addItem[^);]+/g

这也匹配 _addItem( 部分。我如何调整它以仅获取括号内的内容?

Regexr example

理想情况下,它应该匹配任何以 pageTracker._addItem(" 开头的字符串,但不包括匹配中直到右括号的那部分。

我将使用 javascript 进行匹配,如果我是对的,我认为不支持回头看

最佳答案

使用look behind 断言但不捕获前面的文本:

/(?<=pageTracker\._addItem\()[^);]+/g

请注意,我将 ( 添加到后面的内容中,以不捕获它。


现在你已经添加了 JavaScript 标签,其中不支持向后看,你必须在一个组中捕获你的目标:

/pageTracker\._addItem\(([^);]+)/g

您的目标将在第 1 组。

关于javascript - 用于匹配函数参数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39663367/

相关文章:

javascript - 如何在 Angular2 中创建对话服务

javascript - Kendo 网格中特定列的自定义过滤器消息

javascript - 扩展 RegExp 以获取文件扩展名

r - 从文本中提取模式

c# - 正则表达式 C# 如何

javascript - 从 db 调用返回对象

javascript - REACTJS:在另一个类中更改状态

javascript - 使用带有动态生成的输入的 form_tag 提交数组

JavaScript 拒绝我所有的正则表达式,怎么会这样?

javascript - Sencha Touch 简单模型验证匹配器