【发布时间】:2014-04-24 12:12:10
【问题描述】:
我需要一个正则表达式来匹配电话号码但不是“[1398340387]”--[10digits] 模式
我有这个正则表达式来识别电话号码,但这也匹配我想转义的 [1398340387]。
1?\s*\W?\s*(\d{3})\s*\W?\s*(\d{3})\s*\W?\s*(\d{4})(\se?x?t?(\d*))?
上下文:
我有一个可能包含电话号码和 [1398340387]: unix 时间戳的字符串,如果找到,我需要突出显示所有电话号码。现在 Unix 时间戳也被识别为电话号码并突出显示,我需要避免这种情况。
示例字符串
[1398337818] * 对话开始 * 使用“yash”[1398337818] 山姆:电话号码:1-234-567-8901 1-234-567-8901 x1234 1-234-567-8901 分机 1234 1 (234) 567-8901 1.234.567.8901 1/234/567/8901 12345678901 [1398337818] 山姆:你好 [1398337905] 山姆:信用卡 1111-2222-3333-4444 [1398338242]
我应该添加什么来逃避后面的部分?
谢谢
【问题讨论】:
-
你在什么情况下使用这个正则表达式?你能单独做那个检查吗?
-
你能给我们看一个示例字符串吗?
-
@Mokchhya 你也想捕获
EXT(ext1234) 吗? -
@Tuga:他的正则表达式确实捕获了扩展名,所以我怀疑答案是肯定的。
-
似乎您可以使用negative lookbehind 来忽略
[]中包含的数字。