假设我们得到的通讯录中包含一些未格式化的数据,例如:
+1(4542)114214 [email protected] [email protected] 、、、
+1(2342)114234 [email protected]; [email protected]
+7(101)111-222-11 [email protected],[email protected]
+1(102)123532-2 [email protected]
+44(301)123 23 45 [email protected]; [email protected]
我尝试为此编写正则表达式:
/ + \ d + \ s(\ d +)\ s \ d + [\ d + \ s | \ d +-] + / g
但是我不知道如何在字母字符之前排除数字。可能这还不是部分解决方案。
编辑#1:我对提供的所有可行解决方案不知所措,非常感谢大家。如果可能的话,如果您添加了至少一些参考/说明如何编写这种复杂的正则表达式,我将不胜感激。
不知道您在哪里使用此正则表达式,我建议使用负前瞻。
^[+\d() -]+(?![\w@])
演示:https : //regex101.com/r/rQ6fK4/1
如果要捕获电话号码,请使用:
^([+\d() -]+)(?![\w@])
它将位于$1
或中\1
,(取决于您在何处使用)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句