javascript - 使用正则表达式提取字符后的所有组
问题描述
目标是从具有以下格式的字符串中提取所有键/值对:
(&(foo=bar)(goo=car))
或者(|(foo=bar)(goo=car)(hoo=dar))
我不知道有多少组,可能是 2 个,可能是 50 个。
我需要提取运算符(& 或 |)和单个参数。
我尝试了以下正则表达式,但它忽略了第一组:
([|&])((\(.*?=.*?\)))+
我怎样才能得到所有的组?
编辑
我想我可以通过应用 2 个正则表达式来让它工作
\(([|&])(.*)\)
这将只提取内容
(foo=bar)(goo=car)
这将提取内容
\((.*?)\)
foo=bar, goo=car
解决方案
let match = null;
const regex = /(\([^&|]+?=.+?)\)/g;
while (match = regex.exec('(&(foo=bar)(goo=car))')) {
console.log(match[0]);
}
推荐阅读
- javascript - NodeJs MVC 架构,这是通心粉代码吗?
- zk - 为什么/何时 Executions.getCurrent() 为空?- 如何调试它?
- angular - 如何从具有特定分钟间隔的特定小时开始创建小时数组
- javascript - 忽略 JSON 属性并仅获取值
- reactjs - 函数缺少返回类型 - 在反应(打字稿)代码中
- python - 如何将 zodb 对象日期时间转换为 Python?
- c# - C# Google Analytics api 调用错误的 SSIS 执行进程任务说操作系统的应用程序无效
- python - 当您具有相同的值时如何拆分列?
- java - 'BoxLayout 不能与 .add 共享'
- excel - 如何查看哪些 A 列条目未出现在 B 列中?