Вы можете заменить \w
(который соответствует буквам, цифрам и символам подчеркивания) на [^\W_]
, который почти такой же, но не соответствует символу подчеркивания:
(icnnumber|number):([^\W_]+)
См. Демонстрационную версию regex .
Если вы хотите убедиться, что icnnumber
и number
соответствуют целым словам, вы можете добавить границу слова в начале:
\b(icnnumber|number):([^\W_]+)
^^
Вы можете даже немного изменить структуру шаблона, чтобы не повторять number
с использованием необязательной группы без захвата, см. ниже:
\b((?:icn)?number):([^\W_]+)
^^^^^^^^
Детали шаблона
\b
- граница слова (сразу справа, должно быть начало строки или символа, отличного от буквы, di git или _
) ((?:icn)?number)
- Группа 1: an необязательная последовательность icn
подстроки, а затем number
подстрока :
- :
char ([^\W_]+)
- Группа 2: одна или несколько букв или цифр.