-1

ユーザーが入力できる文字を指定する次の正規表現があります。

@"^[A-Za-z0-9/!\$%\^&\*\(\)\-_\+\[\]\{\}\;\:\'\£\@\#\.\?]*$

\s「 」が空白の文字クラスであることは知っていますが、これを正規表現に追加して除外するにはどうすればよいですか? 私はこれを Stack Overflow で検索しました - 質問は空白を除外する解決策を提供しますが、既存の正規表現でそれを使用する方法は提供しません。他のキャラクターと同じように追加すると、「空白を許可する」という意味になりますか?

編集: なぜこれがマークダウンされたのかわかりませんか? みんなの答えに感謝

4

3 に答える 3

3

^角括弧内の正規表現は否定を示すため、追加^\sすると「空白ではない」ことを意味します。

于 2012-05-02T09:24:58.623 に答える
3

まず第一に、これらすべてのエスケープは必要ありません。第二に、正規表現はすでに空白を許可していません。

@"^[A-Za-z0-9\[\]/!$%^&*()\-_+{};:'£@#.?]*$"

[] は、許可する文字のセットを定義します (* が続くと、文字セットの文字を 0 回以上使用できることを意味します)。

^ は先頭に一致し、$ は末尾に一致するため、/s がどこにもないという事実は、空白が許可されないことを意味します。

于 2012-05-02T09:26:52.910 に答える
0

正規表現で「\s」を書かないと。これは、正規表現で空白を使用できないことを意味します。

例: 1) ユーザーがテキスト ボックスに空白を入力できないようにする場合、正規表現は次のように記述されます。

Regex alphabet=new Regex(@"^[az]*$");

2) ユーザーがテキスト ボックスに空白を入力できる場合、正規表現は次のように記述されます。

Regex alphabet=new Regex(@"^[az\s]*$");

3) 正規表現で「^」は始まりを意味し、「$」は終わりを意味します。

注: ^\s は「\s」の否定を意味します

正規表現 regfname = new Regex(@"^[^\s][a-zA-Z]*$");

このコードでは、空白や空のテキスト ボックスは使用できません。

これが、正規表現における空白の概念を理解するのに役立つことを願っています..

于 2013-02-02T09:23:28.260 に答える