0
(?!^\*)\w{1,20}

入力が 1 ~ 20 文字の長さで、'*' で始まらないようにしています。ただし、太陽の下の他の文字は許可されます。

式は c# では機能しませんが、このテスターを使用すると機能するようです: http://www.regexplanet.com/advanced/java/index.html

何を変更する必要がありますか?

これについての洞察をありがとう。

編集:リクエストにより、ここにc#コードがあります:

System.Text.RegularExpressions.Regex TempRegex = new System.Text.RegularExpressions.Regex(@"(?!^\*)\w{1,20}");
return TempRegex.IsMatch(_inputString);
4

1 に答える 1

2

最初のゼロ幅の負の先読みアサーションをキャプチャして何をしようとしているのか正確にはわかりませんが、次の正規表現は要件に一致するようです:

@"^[^\*]\w{0,19}$"

"^...$"部分は、文字列全体の一致を強制します。最初の文字"[^\*]"(スター以外) は既に [1-20] 制限に対してカウントされているため、範囲は {0,19} です。

于 2013-02-18T21:46:16.793 に答える