2012-02-08 11 views
0

私の現在の正規表現は、/[^ 0-9]数字のみを許可していません/で許可 - 文字のみ、スペースとが受け入れます。しかし、問題は、()のような他の文字を受け入れ、その間に数字のある文字を受け入れることです。親切に助けてください。正規表現は、 - (ダッシュ)と無番号

ありがとうございました。

答えて

1

間違った方向から問題に近づいています。

何について:

[a-zA-Z \-]+ 
+0

これまでに試したことがありますが、まだ数字を受け入れる – StackX

1
[-a-zA-Z ]+ 

ダッシュや文字 '' のいずれかの場合またはスペースで 'Z' まで。

また、国際的なサポートを強化するために、使用できる名前付き文字クラスがあるかどうかを検討してください。 POSIXシステムでは、次のように書くことができます:

grep -E '^[-[:alpha:] ]+$' 

たとえば、アクセント付きの文字が表示されます。たぶん類似の表記法(おそらくという表記はありません)が利用可能です。

+0

その正規表現はどの桁にも一致しません。 '^ [ - a-zA-Z] + $'の両端にアンカーを置く必要があるかもしれないので、文字列全体が文字、ダッシュ、空白でマッチします。 –

2

ルール/要件を作成してください。アルファベットのみを許可する場合は、試してください。

@"^[a-zA-Z]+$" 

ヒント - アプライセット理論。すべての文字がユニバーサルセットに属する場合すべて許可されています。その後、ルールを適用します。数字を許可しないと、数値以外のすべてが許可されます。あなたの問題のために

0

、あなたはそれはあなたが望んでいた数字と括弧()のようなことはできません。この正規表現

[^()\d] 

を使用することができます。間に数字が表示されません