Моя тестовая строка: 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
Я думаю, вы можете использовать следующее регулярное выражение:
[^\sGWDF](?!.?4)[0-9DTSRF]+
Если вам нужно сопоставить пробелы, удалите \s
из выражения.
Изменение, которое я сделал, добавляет (?!.?4)
отрицательный внешний вид, который не соответствует совпадению, если следующий или следующий символ после следующего символа равен 4
.
[^GWDF](?!.?4)[0-9DTSRF]+
:[^GWDF](?!.?4)[0-9DTSRF]+
?