2012-05-02 18 views
-1

私は、ユーザーが入力する許可されている文字を指定する次の正規表現があります。私が知っているこの正規表現を変更して、空白を許可しないようにするにはどうすればよいですか?

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

「を\sは、」ホワイトスペースの文字クラスですが、どのように私はそれので、正規表現にこれを追加しますそれを除外する?私はこれをスタックオーバーフローで検索しました。疑問はホワイトスペースを除外するソリューションを提供しますが、既存の正規表現でそれを使用する方法はありません。私が他の文字を持っているようにそれを追加すると、「空白を許可する」という意味でしょうか?

編集:これがマークされた理由はわかりませんか?すべての人のお返事ありがとうございます

+3

現在、空白は使用できますか? – SimpleVar

+0

私は確かにそれをテストしました。私が思ったように、既に空白は除外されています... – SimpleVar

+1

'excludes it 'とはどういう意味ですか?現在のところ、あなたの正規表現(BTWはそれほど多くのエスケープ文字を必要としません - 文字クラスの '['と ']'をエスケープする必要があります)では、空白を除外して既に除外されています。 – Jamiec

答えて

3

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

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

[](*続く文字セットからの文字が0回以上とすることができることを意味する)を可能にする文字のセットを定義します。

^は先頭に一致し、$は最後に一致します。したがって、/ sがどこにもないことは、空白が許可されないことを意味します。

+0

'$'は '&'ではなく最後です。 – Jamiec

+0

LOLありがとう。一定。 – SimpleVar

+0

(まだあなたの説明でそれを持っています) – Jamiec

3

大括弧内の^は角括弧内に否定を示していますので、^\sを追加すると「空白ではありません」という意味になります。

+0

厳密には真ではなく、文字クラスの*開始*の '^'は否定されたクラスです。 (OPのような)どこかの中間の '^'はその文字クラスの文字をちょうど含んでいました。 – Jamiec

+0

もちろん、もちろんです。私は今日はあまりにも疲れているので...。 – glenatron

0

正規表現では、「\ s」と記述しない場合。つまり、正規表現では空白を使用できません。

正規表現のアルファベット=新しい正規表現(@ "^:私は、すべてのユーザーがテキストボックスに空白を入力できるようにしたくない場合は、正規表現は次のように書かれている 1):例えば

[az] * $ ");ユーザーは、その後、正規表現のように書かれているテキストボックスに任意の空白を入力するように許可されている場合は

2):(

正規表現のアルファベット=新しい正規表現@「^ [AZ \ S] * $」) ;

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

注:^ \ s "は\ sの"

正規表現regfname =新しい正規表現の否定を意味します(@ "^ [^ \ s]は[-ZA-Z] * $");

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

これは、正規表現の空白の概念を理解するのに役立ちます。

+0

OPはすでに '\ s'の目的を理解しています:彼らが必要としたのは、特定の正規表現パターンでの使用に関するアドバイスでした。あなたの質問はそれに対処していないので、あまり役に立ちません。 – APC

関連する問題