0

現在、私は{{.+?}}(Python で re を使用して、その価値があるため) を使用し{{text}}ていますが、問題は、これが時々発生することです: {{ text {{text}} text }}. 正規表現の文献で、これを解決する方法を見てきましたが、うまくいきませんでした。どんな提案でも大歓迎です!

編集: 目標は、中央部分だけでなく、すべてを選択することです。

4

3 に答える 3

0

否定的な先読みを使用できます。{{(?:(?!{{).)+?}}

[編集]

のように、最大​​でも 1 レベルの深さでネストできる場合は{{ text {{text}} text }}、次を使用できます。

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

それらが任意のレベルの深さになる可能性がある場合は、Python の re モジュールがサポートしていない再帰的な正規表現が必要です。ただし、ここの正規表現モジュールは次のとおりです。http://pypi.python.org/pypi/regex

于 2012-11-08T20:33:57.220 に答える
0

次のように、負の文字クラスを使用する必要があると思います。

\{\{[^\}\{]+\}\}
于 2012-11-08T20:29:07.167 に答える
0

正規表現パターンを使用してみてください

\{{2}(?:[^{}]+|(?<!\})\}(?!\})|(?<!\{)\{(?!\{)|\{{2}\}{2})\}{2}
于 2012-11-08T20:51:05.153 に答える