2
中最後一次出現後存在我有一個源字符串,它看起來像這樣:mID00231mID00008mID00231mID00054mID00013mID00008mID00065
匹配,如果所有BCD..n的
我想創建,使用這個例子中的模式,方法是:在過去發生在一個或多個發生的 {mID00054,mID00013,mID00008,mID00065}每個必須遵循它(在任何順序)。
比賽的例子:不匹配,因爲缺少「mID00065」的
mID00231mID00008mID00231mID00054mID00013mID00008mID00065
mID00231mID00013mID00054mID00008mID00065mID00008
實施例:不匹配的
mID00231mID00054mID00013mID00008
實施例,因爲「mID00231」最後一次出現之後不是一個「mID00054」和「mID00008」:
mID00231mID00013mID00065mID00054mID00008mID00231mID00013mID00065
我對於正則表達式還是比較陌生的,但通常都會到達該方法有效。這一個非常困難。我試過這個:
(?:mID00231)(?:(?=.*mID00054)(?=.*mID00013)(?=.*mID00008)(?=.*mID00065).*)
它適用於第一個元素(mID00231)只出現一次的情況。如果元素重複,則模式失敗。任何幫助表示讚賞。
當你說「其次」時,你的意思是「緊隨其後」嗎? – redneb
This regex'mID00231((?=(?:(?!mID00231)。)* mID00054)(?=(?:(?!mID00231)。)* mID00013)(?=(?:(?!mID00231)。)* mID00008)(?=(?:(?!mID00231)。)* mID00065)(?:(?!mID00231)。)*)'看起來很可怕。你確定你需要一個正則表達式嗎? –
好的,你可以用簡單的lookahead替換脾氣暴躁的代幣。 –