5

入力フィールドにカンマ区切りの値のみを受け入れる正規表現パターンが必要です。

例: abc,xyz,pqr. 次のような値を拒否する必要があります。, ,sample text1,text2,

また、セミコロンで区切られた値も受け入れる必要があります。誰でもこれの正規表現パターンを提案できますか?

4

5 に答える 5

8

最も単純な形式:

^\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
}

ジャバのデモ。

于 2013-06-26T04:05:20.530 に答える
2

試す:

^\w+((,\w+)+)?$

練習できるオンライン正規表現テスターがあります。たとえば、http://regexpal.com/です。

于 2013-06-26T04:07:16.333 に答える
1

次を試してください。

^[^,]+(,[^,]+)*$

次のように、単語と Unicode テキストの間にスペースを入れることができます。

word1 word2,áéíóú áéíúó,ñ,word3
于 2013-06-26T04:10:29.250 に答える
1

機能する最も単純な正規表現は次のとおりです。

^\w+(,\w+)*$

そして、ここに方法があります:

public static boolean isCsv(String csv) {
    return csv.matches("\\w+(,\\w+)*");
}

String.matches()開始または終了の正規表現 (^ および $) は必要ないことに注意してください。true を返すには入力全体が一致する必要があるため、このメソッドで暗黙的に指定されます。

于 2013-06-26T04:10:50.570 に答える
0

アルファベットのみが必要なコメントに基づいて、これが必要だと思います(文字を意味すると思います)

^[A-Za-z]+(,[A-Za-z]+)*$

于 2013-06-26T04:15:37.437 に答える