正则表达式模式接受逗号或分号分隔值

我需要一个正则表达式模式,它只接受输入字段的逗号分隔值。

例如: abc,xyz,pqr 。 它应该拒绝诸如: ,sample text1,text2,

我还需要接受分号分隔值。 任何人都可以为此建议正则表达式模式吗?

最简单的forms:

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

Java演示。

尝试:

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

您可以使用在线正则表达式测试人员。 例如, http://regexpal.com/ 。

尝试下一个:

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

单词和Unicode文本之间可以有空格,例如:

 word1 word2,áéíóú áéíúó,ñ,word3 

最简单的正则表达式是:

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

在这里它是一种方法:

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

请注意, String.matches()不需要start或end正则表达式(^和$); 它们隐含在此方法中,因为必须匹配整个输入才能返回true。

我想你想要这个,基于你的评论只想要字母(我假设你的意思是字母)

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