入力フィールドにカンマ区切りの値のみを受け入れる正規表現パターンが必要です。
例: abc,xyz,pqr
. 次のような値を拒否する必要があります。,
,sample
text1,text2,
また、セミコロンで区切られた値も受け入れる必要があります。誰でもこれの正規表現パターンを提案できますか?
最も単純な形式:
^\w+(,\w+)*$
アルファベットのみを制限する必要があります。どうやってやるの ?
正規表現を使用します (Unicode 文字の範囲の例が含まれています)。
^[\u0400-\u04FFa-zA-Z ]+(,[\u0400-\u04FFa-zA-Z ]+)*$
使用例:
public static void main (String[] args) throws java.lang.Exception
{
String regex = "^[\u0400-\u04FFa-zA-Z ]+(,[\u0400-\u04FFa-zA-Z ]+)*$";
System.out.println("abc,xyz,pqr".matches(regex)); // true
System.out.println("text1,text2,".matches(regex)); // false
System.out.println("ЕЖЗ,ИЙК".matches(regex)); // true
}
次を試してください。
^[^,]+(,[^,]+)*$
次のように、単語と Unicode テキストの間にスペースを入れることができます。
word1 word2,áéíóú áéíúó,ñ,word3
機能する最も単純な正規表現は次のとおりです。
^\w+(,\w+)*$
そして、ここに方法があります:
public static boolean isCsv(String csv) {
return csv.matches("\\w+(,\\w+)*");
}
String.matches()
開始または終了の正規表現 (^ および $) は必要ないことに注意してください。true を返すには入力全体が一致する必要があるため、このメソッドで暗黙的に指定されます。
アルファベットのみが必要なコメントに基づいて、これが必要だと思います(文字を意味すると思います)
^[A-Za-z]+(,[A-Za-z]+)*$