1

「有効な」入力を定義したいのですが、これは_-.文字列の最後または最初では許可されず、途中でのみ許可されます。

許容可能な文字(場所は関係ありません):a-zA-Z0-9および、正規表現で許可する方法がわからないすべてのヘブライ文字 (おそらく、すべての文字をハードコーディングするだけですか?)

使用できない文字(場所は関係ありません): 以前に提供した特殊記号を除くすべての記号。

このパターンを構築する方法がわかりません。すべてのセクションにヒントやコメントを追加していただければ理解できます。ありがとう!

これは宿題ではなく、自習用です。

4

1 に答える 1

1
@"^[a-zA-Z\dא-ת][a-zA-Z_\-\.\dא-ת]*[a-zA-Z\dא-ת]$"

重複なしで「_.-」を許可したい場合:

@"^[a-zA-Z\dא-ת]([a-zA-Z\dא-ת]+[_\.\-]?)*[a-zA-Z\dא-ת]$"

途中で空白を許可したい場合:

@"^[a-zA-Z\dא-ת][a-zA-Z_\-\.\d\sא-ת]*[a-zA-Z\dא-ת]$"

重複なしで空白 + "_.-" が必要な場合:

@"^[a-zA-Z\dא-ת]([a-zA-Z\d\sא-ת]+[_\.\-]?)*[a-zA-Z\dא-ת]$"

したがって、正規表現を使用して:

var isValid = Regex.IsMatch(input, @"...");

また、コードで正規表現を何度も使用する予定がある場合は、スピードを上げるために RegexOptions.Compiled フラグを追加することをお勧めします。

var isValid = Regex.IsMatch(input, @"...", RegexOptions.Compiled);
于 2012-04-21T09:24:52.010 に答える