正则表达式模式接受逗号或分号分隔值
我需要一个正则表达式模式,它只接受输入字段的逗号分隔值。
例如: 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]+)*$