2

Simulink のTarget Language Compiler (TLC) ファイル用の Sublime Text 2 シンタックス ハイライターを作成しようとしています。これは、コードを自動生成するためのスクリプト言語です。TLC では、トークンの内容を展開する構文 (C または C++ でポインターを参照解除するのと同様) は次のとおりです。

%<token>

これに一致するように私が書いた正規表現は

%<.+?>

これはほとんどの場合に機能しますが、次のステートメントでは失敗します

%<LibAddToCommonIncludes("<string.h>")>

正規表現を貪欲に変更すると、ステートメント自体が行にある場合はこれが修正されますが、他のいくつかのケースでは失敗します。したがって、それはオプションではありません。

その行では、強調表示>は 2 番目ではなく 1 番目で停止します。このケースを処理するために正規表現を変更するにはどうすればよいですか?

ネストされた任意の数の<>ペアを処理できる一般的な式があれば、それは素晴らしいことです。例えば

%<...<...>...<...<...>...>...>

ここで、ドットはオプションの文字です。上記の式全体が 1 つの一致である必要があります。

4

1 に答える 1

2

このスレッドで非常によく説明されているように、正規表現を介した一般的な方法は困難です。

<正規表現を使用して2文字を具体的に一致させることができます。のようなもの%<.+?<.+?>.+?>

于 2012-12-13T16:57:40.397 に答える