我需要從一個字符串\begin{?}
和\end{?}
其中?
是任何數目的字母數字或字符*
所以它必須例如\begin{align}
和\end{align*}
匹配相匹配。正則表達式爲 {開始?}和 {結束?}
我試圖做到這一點,但我不知道什麼是錯的
^\\begin{[^}]*}$
開始\begin{
,以下anything that's not }
多次,密切與}
。
同樣的事情是與\end{?}
,但我希望它在單個正則表達式中如果可能的話。
我需要從一個字符串\begin{?}
和\end{?}
其中?
是任何數目的字母數字或字符*
所以它必須例如\begin{align}
和\end{align*}
匹配相匹配。正則表達式爲 {開始?}和 {結束?}
我試圖做到這一點,但我不知道什麼是錯的
^\\begin{[^}]*}$
開始\begin{
,以下anything that's not }
多次,密切與}
。
同樣的事情是與\end{?}
,但我希望它在單個正則表達式中如果可能的話。
我覺得下面的正則表達式就是你需要的。
\\(begin|end){[a-zA-Z0-9*]+}
出現了額外的要求 - 如果有另一個'{SOMETHING}'(花括號)在第一個之後它也應該匹配,所以'\ begin {array}'應該與'\ begin {array} {ll}'相匹配 - 所以第二個花括號是可選的? – svenkapudija
你的正則表達式:
\\(begin|end){.*?}
的.*
將抓住{ }
之間的任何東西,而當第一}
而來的?
手段將停止。
正如我從問題中所理解的那樣,要求只適用於括號內的字母數字字符或'*' l匹配任何字符 –
好拿起,我的壞。 @VamanKulkarni完美無瑕。 – jared
嵌套怎麼樣?如果你關心嵌套(例如'\ begin {foo} \ begin {foo} \ end {foo} \ end {foo}',那麼正則表達式明顯不是最優的。如果你不關心嵌套,它仍然可能是不理想的,但它會更合理 –
是的,有一個嵌套在字符串內,但我用''(無)取代所有這些,所以我猜這不應該是一個問題...或? – svenkapudija