這裏是正則表達式我到目前爲止:正則表達式多正前瞻組
^(?=.*(option1|option2))(?=.*(option3|option4))(?=.*(option5|option6))(?=.*(option7|option8))(?=.*(option9|option10)).*$
我不是在正則表達式語言臀部,所以我會做我自己的定義:
類1 (選項1 |選項2),類別2是(選項3 |選項4),類別3是(選項5 |選項6)等
我想捕獲值,其中3個或更多的類別中至少有一個選項是發現,像這樣:
一些文字2選項一些文字選項8一些文字選項1
OR
一些文字2選項一些文字選項8一些文字選項1一些文字選項6
我不想捕捉值是這樣的:
一些文字2選項一些文字選項8 - 只有2個類別中表示
OR
一些文字2選項一些文字3選項更多文本選項1(選項3和4來自同一類別)
這些選項可以在文本中以任意順序出現,所以這就是爲什麼我使用了積極的向前看,但我不知道如何將量詞放在多個積極的lookahead上。
就正則表達式引擎而言,我必須使用由後臺python驅動的前端UI。我只能使用正則表達式,我沒有能力使用任何其他的Python函數。謝謝!
謝謝你的解決方案!你能否再解釋一下VERBOSE模式是什麼?我必須使用的前端UI不允許更改爲VERBOSE模式。這可以用python的默認模式編寫(不知道是什麼)。 –
您可以在開頭添加'(?x)',在正則表達式中指定VERBOSE模式。或者你可以從正則表達式中刪除所有的空白:'^(?=。*(?: option1 | option2)())?(?=。*(?: option3 | option4)())?(?=。* (?:選項5 |選項6)())(= *(?:選項7 |選項8?)())(= *(?:選項9 | option10?)())* $(?:???\ 1 \ 2 \ 3 | \ 1 \ 2 \ 4 | \ 1 \ 2 \ 5 | \ 1 \ 3 \ 4 | \ 1 \ 3 \ 5 | \ 1 \ 4 \ 5 | \ 2 \ 3 \ 4 | \ 2 \ 3 \ 5 | \ 2 \ 4 \ 5 | \ 3 \ 4 \ 5)' –
太棒了!非常感謝! –