匹配的电话号码前无文字

时间:2018-09-05 20:32:53

标签: java regex

我尝试使用正则表达式后面的负数来匹配不带文本的电话号码:

Tel (123) 456-7890

到目前为止,我所拥有的与两种情况都匹配,有无前文, 不知道为什么。

(?<!Tel )(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}

谢谢

1 个答案:

答案 0 :(得分:1)

在模式开始处使用负前瞻:

^(?!Tel)(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}
^^^^^^^^

正则表达式演示here


或锚定否定性的背后:

^(?<!Tel )(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}
^^^^^^^^

正则表达式演示here