2016-09-26 127 views
1

我想匹配的字符串正則表達式排除一個字

\begin *** \end 

其中***不包含\begin

到目前爲止,我已經嘗試

\\begin(?!\\begin)\\end 

,但它不工作。

回答

2

在每個字符使用負前瞻:

\\begin((?!\\begin).)*\\end 

請注意,如果你想匹配,這將匹配第二\begin和輸入

\begin foo \begin bar \end bar 
      ^^^^^^^^^^^^^^^ 

\end整個看起來像那樣的字符串,包裝在^$

^\\begin((?!\\begin).)*\\end$ 
+0

這可能會有點奇怪,q.v. [這裏](https://regex101.com/r/xQ0tV4/1)。 –

+0

這是什麼意思一整串? – Colas

+0

你應該永遠放置。如果第一個字符是不需要的單詞的一部分,它將匹配。 –