首页 > 解决方案 > 正则表达式:匹配除一个以外的所有电话号码

问题描述

我想创建一个匹配除一个之外的所有电话号码的正则表达式。因此,例如,如果我有一个文本:

“嘿,我的电话号码是 0498995859 但你也可以给我打电话:0466655522”

我想抓住0498995859但不是0466655522

+ 当它写成这样时,我也想匹配:sddkkd0498995859fsdkfd

我尝试了几件事但没有成功:(

标签: regex

解决方案


这个做的工作:

(?<!\d)(?!0466655522)\d{10}(?!\d)

解释:

(?<!\d)         : negative lookbehind, make sure we don't have a digit before
(?!0466655522)  : negative lookahead, make sure we don't have the number "0466655522"
\d{10}          : 10 digit
(?!\d)          : negative lookahead, make sure we don't have a digit after

推荐阅读