Демо: https://regex101.com/r/5EVbAJ/1
У меня есть это регулярное выражение:
a.+?(W)?.*?(\d)
Мое намерение: получить символ W как группу, если символ существует в строка. В противном случае верните пустую группу. Вторая группа - это существующий номер, который также необходимо сопоставить.
Мои тестовые данные:
1. a,W1
2. a W1
3. a,W 1
4. a, V1
5. a, W1 //fail
1-3 работают, потому что между a
и W
(я считаю, что это из-за ленивого оператора +?
). 4 работает, потому что сопоставление W
не требуется.
Но 5 не работает: группа номеров сопоставлена правильно, но группа W
пуста, хотя W
встречается с двумя символами между a
и W
.
Как исправить?