私は.texファイルを読み込み、別の.texファイルに保存するパターンに従って置き換えています。私の左の区切り文字はRegex perlで区切られたLaTeXテキストに一致する
\ket{
で、右の区切り文字は
}
正規表現\\ket\{(.+)\}
が
\ket{0}
を一致させることができますが、そのような
$\ket{\bfG \bfP^L_{2ex}}$, and the real space, $\ket{\bfP^L_{2ex}}$
のような複雑な線で、それが一致していますテ全体XT
\\ket{([^{}]*|[^}])*}{1,2}
に正規表現を変更
\bfG \bfP^L_{2ex}}$, and the real space, $\ket{\bfP^L_{2ex}
私が言及した複雑なラインを検出しますが、動作しないように
reciprocal lattice, $\ket{\bfG \bfP^L_{2ex}{3}{2}}$, and the real space, $\ket{\bfP^L_{2ex}}$
などのケースですることができます。これをどうすれば解決できますか?このような問題を解決するには、どのアルゴリズム/トピック/書籍/チュートリアルを読む必要がありますか?
ステップ1:[regexes](https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags)を使用して停止します。 https://en.wikipedia.org/wiki/Context-free_grammar#Examples – n0rd
[誰かが私の質問に答えたときに何をすべきですか?](http://stackoverflow.com/help/someone-answers)を参照してください。 – zdim