使用 RegEx 查找 LaTeX 环境

使用 RegEx 查找 LaTeX 环境

我有一个LaTeX如下的代码:

--- text might be here ---
$\begin{cases}
k & l & m \\
x & y & z
\end{cases}$
--- text might be here ---
$\begin{cases}
k & l & m \\
x & y & z
\end{cases}$
--- text might be here ---
$\begin{cases}
k & l & m \\
x & y & z
\end{cases}$
--- text might be here ---

我创建它是regex为了捕捉每个cases环境:

\\begin\{cases\}((\s*.*\s*)*)\\end\{cases\}

发生的情况是,它从第一个\begin{cases}到最后一个进行匹配\end{cases},而我需要它独立地匹配每个环境,也就是说,在匹配\end{cases}每个\begin{cases}环境之后匹配第一个。

请注意,空格、换行符和制表符不是必需的,并且可能并不总是存在。

答案1

一般来说,你可以采用不同的方法:

  1. 使用惰性量词
    • .*?代替.*
  2. 如果发现某些字符仅出现在结尾处,则排除它们
    • [^{]*或者[^\]代替.*

相关内容