如何修复正则表达式间距

How can I fix the regex spacing

我的正则表达式:(?:LD |(?:[a-zILT]+ ?))

我的测试字符串:Green 4 Green 4 Green 7 WI LD Green 9 Green 9 Red 3 Red 3 Red 4 WI LD Draw Four Red 5 Red Reverse Yellow 0 Yellow Skip Green 8 WI LD Draw Four

https://regex101.com/r/aD0oS2/5

如果您在下面查看 regex101 中的 SUBSTITUTION,它 returns:

G4 G4 G7 WG9 G9 R3 R3 R4 WDFR5 RRY0 YSG8 WDF

我该如何解决这个问题?我希望它 return 类似于:

G4 G4 G7 W G9 G9 R3 R3 R4 WDF R5 RR Y0 YS G8 WDF

如果使用 PCRE,(?|...) 表示法允许多个捕获共享相同的捕获编号,如 here.

所示
(W)I LD(?: (D)raw (F)our)?|(D)raw (?|(T)wo|(F)our)|(?:(?|(R)ed|(G)reen|(Y)ellow|(B)lue) (?|(S)kip|(R)everse|(\d)))

替换为


应该给你输出

G4 G4 G7 W G9 G9 R3 R3 R4 WDF R5 RR Y0 YS G8 WDF

您可以看到多个输入案例here

我也尝试再次使用它,结果是:(?:(?:[a-z]|I LD)| (?!Red|Green|Blue|Yellow|WI LD)) 似乎工作正常。

https://regex101.com/r/aD0oS2/6

http://sandbox.onlinephpfunctions.com/code/e8096fbcda5cc5c3878531f069dc0d3af5289852