标签: javascript regex
我正在尝试使用Regex清理电话号码。
我不希望数字之间有任何分隔符,我不想要本地(0)部分。分隔符可以是任何非数字字符。
即。数字可能是:
这匹配(0)部分罚款:
http://regex101.com/r/cB6hN4/3
但如果我添加| \ D +来匹配非数字字符,它会覆盖我的第一场比赛:
http://regex101.com/r/cB6hN4/2
如何将两个匹配保留在一个正则表达式中?
答案 0 :(得分:2)
不要在最后使用|\D+,而是尝试使用|[^()\d]+
|\D+
|[^()\d]+
正则表达式为\((\d+)\)|[^()\d]+
\((\d+)\)|[^()\d]+
DEMO
但是考虑到括号不能用作分隔符,你可以在演示中看到
答案 1 :(得分:1)
我想你想要这样的东西,
\((\d+)\)|(?:(?!\(\d+\))\D)+
(?:(?!\(\d+\))\D)+匹配一个或多个非数字字符,但不匹配(\d+)
(?:(?!\(\d+\))\D)+
(\d+)