3

Ruby の正規表現を tmLanguage ファイルで使用できることはわかっていますが、拡張などの他の構成ファイルではそうではないようです。たとえば、言語貢献firstLineの値を考えてみましょう。文字クラス (や など)を使用するとエラーが発生します。したがって、そこで実際に何が許可されているのだろうか。そこに空白をどのように一致させますか?\s\p{L}

更新:コメントの後、私はこれを試しました:

"firstLine": "^(lexer|parser)?\\s*grammar\\w+;"

lexer grammar G1;またはのような最初の行に一致するはずgrammar G1;です。それ以外の場合は検証がないため、その RE が機能するかどうかをテストする方法はありますか?

更新 2 :

正しい文法を使用することが不可欠であり、魔法のように機能します。

"firstLine": "^(lexer|parser)?\\s*grammar\\s*\\w+\\s*;"
4

1 に答える 1

0

.NET 正規表現は、大部分が Perl 5 に基づいた構文を使用しますが、名前付きキャプチャ グループや右から左へのマッチングなどのいくつかの新機能が追加されているため、2 つを同一と考えるべきではありません。.NET 正規表現に関する完全な MSDN ドキュメントは次のとおりです。

.NET Framework の正規表現

\sは .NET で有効な文字クラスですが、試しているコードを見ずに問題を正確に判断することは困難です。アンドリューは、あなたがエスケープしなかったことは正しいかもしれません\.

于 2016-08-21T15:24:43.937 に答える