4

スクリプト言語で有効な識別子を確認するための正規表現があります。これらは文字またはアンダースコアで始まり、その後に 0 個以上の文字、アンダースコア、数字、および $ 記号を続けることができます。でも、電話したら

Util.IsValidIdentifier( "hello\n" );

true を返します。私の正規表現は

const string IDENTIFIER_REGEX = @"^[A-Za-z_][A-Za-z0-9_\$]*$";

では、「\n」はどのように通過するのでしょうか?

4

3 に答える 3

0

文字クラス内をエスケープする必要がないため、結果はtruewithになります。したがって、文字クラス内にバックスラッシュ (リテラルとして表示) があるため、バックスラッシュが一致します。hello\n$

これを試して:

const string IDENTIFIER_REGEX = @"^[A-Za-z_][A-Za-z0-9_$]*$";

$1 行にある変数名をテストしているため、文字列の末尾として使用できます。

于 2013-06-27T17:44:20.397 に答える