2012-03-28 10 views
-1

の最小数のために私は名前を検証するために、この正規表現を作成しました:は、正規表現は、文字

^[a-zA-Z0-9\s\-\,]+.\*?$ 

を最小文字数を追加する方法はありますか?

{x,}を使用できますが、動作させることはできません。

+3

Re:" {x、}を使うことはできますが、動作させることはできません "あなたが試したものを投稿しますか?その表記をサポートしていない正規表現エンジンを使用していない限り、動作してはいけない理由はないからです。 – ruakh

答えて

4

{x,}ここに代わり+の使用する必要があります。..

^[a-zA-Z0-9\s,-]{5,} 

しかし、これは意味し、「初めに少なくとも5つの文字は、文字クラスからのものと一致して、何も...

^[a-zA-Z0-9\s\-\,]{5,}.\*?$ 

これは、次のように書くことができます(これはほとんどオリジナルのものです。つまり、少なくとも5文字は最初は文字クラスのもの、その後は任意の1文字、その後はオプションでアスタリスクで終わりにする必要があります。 "

+0

Hm。確かに問題があるとは確信していません;)したがって、もしx **文字の長さを確保したいのであれば、F.Jの助言に従ってください;) – poncha

3

正規表現の冒頭にlookaheadを使用して、合計文字数が最低限であることを確認してください。たとえば、最小文字数が8文字の場合:

^(?=.{8,})[a-zA-Z0-9\s\-,]+.\*?$ 

また、カンマをエスケープする必要はありません。

+1

@ code-gijoeこれもJavaで動作するはずですが、ルックアラウンド機能がサポートされている場合はregexpエンジンに依存します –