2016-05-19 11 views
2

文字列の形式をチェックしたいと思います。私はこれを作る正規表現、カンマで区切られた文字

-"AZERTY" 
-"AZERTY,REGULAR,AKILO" 

が、私はよく分からない: 可能なフォーマットは、

String formatAttributes = "^[a-zA-Z0-9](,[a-zA-Z0-9])?*$"; 

それは正しいのか?ここで

+1

' "^ [-ZA-Z0-9] +([-ZA-Z0-9] +)* $";' –

+0

の場合値は空でもよい'' ABC ,, XYZ "'、@PranavCBalanで正規表現の '+'を '*'に置き換えます。 'matches()'を使ってcheckすると、 '^'と '$'は不要です。 – Andreas

+0

@アンドレアス彼は文字列フォーマット全体をチェックしたいので、 '^'と '$'が必要です。私が彼が '' ABC、XYZ "' –

答えて

2

は続行する方法です:

Pattern pattern = Pattern.compile("\\w+(,\\w+)*"); 
System.out.println(pattern.matcher("AZERTY").matches()); 
System.out.println(pattern.matcher("AZERTY,REGULAR,AKILO").matches()); 

出力:

true 
true 

NB:[-Zaは-Z_0-9]ことを意味します\wが単語文字であります最初の正規表現にアンダースコアが追加されました。必要がない場合は、正規表現は[a-zA-Z0-9]+(,[a-zA-Z0-9]+)*

+0

npbrよろしくお願いします。 –

0

いくつかのもっともらしい解決策があります。 2つの例が一致するようにしたいと仮定します。AZERTYAZERTY,REGULAR,AKILOここで、文字は任意のa-zです。

^([a-z0-9]+(?:,[a-z0-9]+,[a-z0-9]+)?)$ 

Regular expression visualization

注:この式は、大文字小文字を区別しないフラグの使用を想定しています。

ライブデモ

https://regex101.com/r/yP6lX6/1

+0

ありがとうございます! :) – ZouIou

関連する問題