使用正则表达式排除指定模式:提取零件号时过滤电话号码
零件号提取正则优化:排除特定电话号码格式
要在保留原有零件号匹配逻辑的基础上,排除XXX-XXX-XXXX格式的电话号码,可以在原正则前添加负向前瞻断言实现,修改后的正则如下:
\b(?!\d{3}-\d{3}-\d{4}\b)(\S[A-Z0-9/-]{3,30})\b
逻辑说明
(?!\d{3}-\d{3}-\d{4}\b):负向前瞻断言,确保当前位置后续的内容不是完整的XXX-XXX-XXXX格式电话号码(\b用于限定整个号码为独立单词,避免误排除包含该格式片段的零件号)- 后半段
(\S[A-Z0-9/-]{3,30})\b完全保留原有零件号匹配规则,保证原有匹配效果不变
测试验证
针对测试邮件内容:
this is an email, the part numbers are AB-CDE-FGHIJK and 3577/GFGFGF. my phone number is 585-555-6533 but i don't want that! fix it.
修改后的正则会准确提取出AB-CDE-FGHIJK和3577/GFGFGF,同时排除585-555-6533。
内容的提问来源于stack exchange,提问作者ijoubert21
相关产品推荐
相关产品推荐

