基本上我正在寻找一个匹配一些简单电话号码的正则表达式。
我希望匹配较长的文本字符串中的数字,例如123 4567
,891-0111
或21314151
,这些内容(希望)由(\d{3,4}[- ]\d{3,4}|\d{4,8})
标识,但是我如果它们属于3919503570275
等更长的数字,则不想匹配它们。
如果我要求下一个字符是非数字或行的结尾,那么下一个字符也会包含在匹配中,这是我不想要的。
答案 0 :(得分:3)
用前瞻和后视来围绕你的正则表达式以拒绝双方\d
:
(?<!\d)(\d{3,4}[- ]\d{3,4}|\d{4,8})(?!\d)
请注意,这会接受一个字符串,该字符串看起来像是前面或后跟字母的电话号码。
答案 1 :(得分:0)
根据您使用的编程语言,我建议使用否定预测或使用组来提取数字。
有关环视模式的信息,请参阅https://www.regular-expressions.info/lookaround.html。