2015-11-04 23 views
1

我的正則表達式:(?: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在代換下面看看它返回:

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

如何修復此間距?我希望它像返回的東西:如果使用PCRE

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

+0

是什麼規格?哪些空間需要保存/應該在哪裏添加? –

+0

數字後的空格/反轉/跳過/繪製二/繪製四需要保留。所有其他空間應該被刪除。所以:「綠色4」應該變成「G4」,「綠色倒轉黃色6」變成「GR Y6」。 – Jakobd

+0

'WI LD'中的額外空間是用於? – McGlothlin

回答

1

我也試過再次玩它,結果是:(?:(?:[a-z]|I LD)| (?!Red|Green|Blue|Yellow|WI LD)),它似乎工作正常。

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

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

+0

如果它的工作,你可以編輯帖子或刪除它。 –

+0

@stribizhev它說,我不能刪除它,因爲這個職位已經答案。我不知道我應該在這篇文章中編輯我是相對較新的Stackoverflow。 – Jakobd

+0

好吧,我upvoted你的帖子,當可能的時候,你可以接受你的解決方案。 –

0

,該(?|...)符號允許多次捕捉到所有共享相同的捕獲數量,看到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))) 

\1\2\3\4\5\6\7 

更換應該給你輸出

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

你可以看到多個輸入的情況下here