emacs中乳胶字体的正则表达式

Regular expression for latex fonts in emacs

以下正则表达式取自 font-latex.el - line # 925 (auctex-11).

"\(?:{[^}]+}\)?"

我已尝试转换此表达式,使其可以在 Emacs 中接受以下文本。

1 - \begin{code}{}
2 - \begin{code}{{}}
3 - \begin{code}{Hello World}
4 - \begin{code}{\textbf{Hello World}}

这里代码环境需要2个参数,也被添加到逐字本地环境中。

此正则表达式以可选参数之后的参数为目标。

转换后的正则表达式

"\(?:{[^}]+{[^}]+}}\)?"

使用转换后的正则表达式,仅接受以下文本。

1 - \begin{code}{\textbf{Hello World}}

我还需要进行哪些其他更改才能接受其他三种格式?

正如@lawlist 所建议的,需要多个规则来捕获不同的模式。以下 2 条规则捕获了问题中指定的所有 4 种情况。

"\(?:{[^}]*}\)?"
"\(?:{[^}]*{[^}]*}}\)?"