我想使用正则表达式在 JavaScript 中拆分字符串。
输入: key1(name1,val1)key2(val2)
预期输出:
- 键1
- 名称1,值1
- 键2
- val2
如果我使用这个 'key1(name1,val1)key2(val2)'.match(/[^\(\)]+/g)
它对于上面的字符串工作正常但失败对于转义的括号。
例如:以下输入失败 'key1(name\(1,val1)key2(val\)2)'.match(/[^\(\)] +/g)
。
我想在输入值中允许\) 和\(,并且在分割时不应考虑它。
我想要的预期输出如下:
- 键1
- 名称\(1,val1
- 键2
- val\)2
如何使用正则表达式实现它?
最佳答案
这个怎么样:
result = subject.match(/(?:\\.|[^()])+/g);
说明:
(?: # Start a non-capturing group that matches...
\\. # either an escaped character
| # or
[^()] # any character except parentheses
)+ # one or more times.
关于javascript - 使用具有多个标记的 JavaScript 正则表达式分割字符串并考虑转义分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484422/