我想使用未遵循或前面有数字的正则表达式提取电话号码。
ogle+logo-e1396374999431.jpeg // should not match
tel:8054051124">805-405-1234 // should match
以下是正则表达式SHOULD NOT HAVE DIGITS IN THE END
,但不执行SHOULD NOT HAVE DIGITS AT BEGINNING
(\(?\d{3}\)?-? *\d{3}-? *-?\d{4})(?!\d)
在线链接:https://regex101.com/r/Irshpq/1/
我还通过在线搜索尝试了(?!\d)(\(?\d{3}\)?-? *\d{3}-? *-?\d{4})(?!\d)
和其他一些事情,但没有用。
答案 0 :(得分:2)
添加否定的lookbehind (?<!\d)
:
(\(?(?<!\d)\d{3}\)?-? *\d{3}-? *-?\d{4})(?!\d)
^^^^^^^
请参阅regex demo
如果您需要避免将数字与前面带有数字的(123)
匹配,请将lookbehind移至模式的开头。