我需要找到一个正则表达式模式,它将只匹配字符串中的分机号码,该字符串可能包含其他电话/传真号码和以E或X结尾的名称。需要帮助分解正则表达式模式或提示才能更有效地执行此操作。你知道吗
我试着使用regex模式,只有在有其他电话/传真号码的情况下才能匹配分机号码。你知道吗
(?i)\s*([Ext]*?[- .]*\d{1,4})([X]*?[- .]*\d{1,4})([Ex]*?[- .]*\d{1,4})
从我现在的模式来看,只有在没有其他数字存在的情况下,我才能匹配像Ext. 115
、X 256
、Ex 2114
这样的数字。但是,当有电话号码时,我会首先匹配该号码。
另外,当从字符串"Jane Doe 888-888-8888/Fx 888-8888
指示传真时,x 888-8888
将不匹配。
输入字符串:
1. "Jane EXT. 115"
2. "Jane X289 FAX 888-888-8888"
3. "John Doe-X 241 OR CELL888/8888888"
4. "Jane Doe 888-888-8888"
5. "John Doe FX 888-888-8888"
输出为:
1. "EXT. 115"
2. "X289"
3. "X 241"
4. "e 888-888-8888"
5. "X 888-888-8888"
(无分机时)
这似乎对你的样品有效
(?i)\s*((?:Ext|Ex|X(?<!FAX))[- .]*\d{1,4}(?![-\d]))
https://regex101.com/r/UqJKeE/1
扩展
相关问题 更多 >
编程相关推荐