Подходим все, кроме определенных карт

1

Моя тестовая строка: G4 G4 G7 G9 G9 R3 B4 RD2 R3 YD2 R4 R5 RR W BDT Y0 YS G8 WDF

В настоящее время это выражение [^GWDF][0-9DTSRF]+
Он совпадает со всеми рядом с картами, которые начинаются с G а также не совпадают с WDF и W

https://regex101.com/r/cE9kY5/3

Как я могу это сделать, чтобы он также не соответствовал карте, содержащей в ней 4?

Поэтому он не должен совпадать с чем-либо, начиная с G, также он не должен соответствовать карте с номером 4 в ней, и она не соответствует W и WDF.

Он должен соответствовать только следующему из тестовой строки:

R3 RD2 R3 YD2 R5 RR BDT Y0 YS

Теги:
pcre

1 ответ

1
Лучший ответ

Я думаю, вы можете использовать следующее регулярное выражение:

[^\sGWDF](?!.?4)[0-9DTSRF]+

См. Демо-версию regex

Если вам нужно сопоставить пробелы, удалите \s из выражения.

Изменение, которое я сделал, добавляет (?!.?4) отрицательный внешний вид, который не соответствует совпадению, если следующий или следующий символ после следующего символа равен 4.

  • 1
    Спасибо, это работает :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню