有沒有辦法使2正則表達式產生正則表達式?正則表達式,「兩個正則表達式的總和」
我的意思是,我有一個正則表達式
(\bword\b)
和
(!\\(\w*)(\[.*\])*(\{(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\bword\b(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\})+)
有沒有一種方法來匹配第一個正則表達式加上第二正則表達式?這意味着,所有「字」字裏面沒有「\ something {字母字母字字母}}」?
有沒有辦法使2正則表達式產生正則表達式?正則表達式,「兩個正則表達式的總和」
我的意思是,我有一個正則表達式
(\bword\b)
和
(!\\(\w*)(\[.*\])*(\{(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\bword\b(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\})+)
有沒有一種方法來匹配第一個正則表達式加上第二正則表達式?這意味着,所有「字」字裏面沒有「\ something {字母字母字字母}}」?
我不知道你的意圖,並沒有時間去分析你的表情,但look-ahead
可能是你
(?=\bword\b)(!\\(\w*)(\[.*\])*(\{(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\bword\b(\w|\s|\\|\.|\{.\}|`|\-|\:|/|')*\})+)
根本不起作用... – user1722791
捕捉所有word
的\something{letters letters word letters letters}
之外的答案:
(\bword\b)|(?:\\(?:\w*)(?:\[.*\])*(?:\{(?:\w|\s|\\|\.|\{.\}|`|\-|\:|\/|')*\bword\b(?:\w|\s|\\|\.|\{.\}|`|\-|\:|\/|')*\})+)
我使用OR
並結合兩者的表達使第二個表達式中的每個捕獲組都成爲非捕獲組,因此只能在構造外捕獲word
。
「|」是「還是」?因爲當我在另一個正則表達式編輯器中嘗試時,它會在\ something {} – user1722791
'''means'或''內部和外部使用兩個單詞,是的。你已經在第二個正則表達式中過度使用它了。請注意,我用非捕獲組('(?:)')替換了第二個expresison中的每個捕獲組('()')。這樣你只能在構造外部捕獲「單詞」,但仍然匹配我認爲的全部字符串(匹配和捕獲之間有區別)。 –
根據你的描述:所有「字」話是不是裏面的「\東西{字母字母字字母字母}」,我覺得應該是這麼簡單:
\bword\b(?!.*})
該解決方案假定括號{}
是平衡的。
取決於你的正則表達式工具包,但兩種常規語言的交集是一種常規語言,所以更好的可以做到這一點。 –
我正在使用java。我應該將它添加到標籤嗎? – user1722791
如何匹配第二個正則表達式*不匹配第一個正則表達式?你能想出一個不同的例子,交叉點不是微不足道的嗎? – tripleee