我正在尝试以自由文本形式捕获 8 位电话号码。如果之前出现了特定的字符串,则应该忽略它。
我的正则表达式:
(\b(\+?001|002)?[-]?\d{4}(-|\s)?\d{4}\b)
捕捉:
+001 12345678
12345678
不捕获:
TTT-12345678-123
TTT-12345678
我正在尝试使用负面的外观,如下例所示:
\w*(?<!foo)bar
但只有当正则表达式没有后续组时,上述方法才有效。
我正在尝试以自由文本形式捕获 8 位电话号码。如果之前出现了特定的字符串,则应该忽略它。
我的正则表达式:
(\b(\+?001|002)?[-]?\d{4}(-|\s)?\d{4}\b)
捕捉:
+001 12345678
12345678
不捕获:
TTT-12345678-123
TTT-12345678
我正在尝试使用负面的外观,如下例所示:
\w*(?<!foo)bar
但只有当正则表达式没有后续组时,上述方法才有效。
您可以使用
(?<!TTT-)(?<!\w)(?:\+?001|002)?[-\s]?\d{4}[-\s]?\d{4}\b
查看正则表达式演示
细节
(?<!TTT-)
-TTT-
左侧不允许立即(?<!\w)
- 左侧不允许立即出现字符字符(?:\+?001|002)?
- 一个可选的非捕获组,匹配 1 次或 0 次出现+001
,001
或002
[-\s]?
- 可选-
或空格\d{4}
- 任意四位数[-\s]?\d{4}
- - 一个可选的-
或空格和任何四位数字\b
- 单词边界。如果数字可以粘贴到右侧的单词 char 上,请将\b
单词边界替换为右侧数字边界,(?!\d)
.