Мне нужно найти шаблон регулярного выражения, который будет соответствовать только добавочному номеру из строки, которая может содержать другие номера телефонов / факсов и имена, оканчивающиеся на E или X. Нужна помощь в разбивании шаблона регулярных выражений или советов, как это сделать более эффективно.
Я пытался играть с шаблоном регулярных выражений и смог сопоставить добавочные номера только при наличии других номеров телефона / факса.
(?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"
(при отсутствии расширения)