我需要一個正則表達式模式,只接受輸入字段的逗號分隔值。例如:abc,xyz,pqr
。 它應該拒絕這樣的值:,
,sample
text1,text2,
正則表達式模式接受逗號或分號分隔值
我還需要接受以分號分隔的值。任何人都可以爲此提出一個正則表達式模式?
我需要一個正則表達式模式,只接受輸入字段的逗號分隔值。例如: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
OP說明:這允許空白。由你決定。 – SK9
,工程最簡單的正則表達式是:
^\w+(,\w+)*$
這裏它是作爲一種方法:
public static boolean isCsv(String csv) {
return csv.matches("\\w+(,\\w+)*");
}
請注意,String.matches()
不需要開始或結束正則表達式(^和$);他們隱含着這種方法,因爲整個輸入必須匹配返回true。
我想你想這一點,根據您的評論只想要字母這裏給出的是等價的(我假設你的意思是字母)
^[A-Za-z]+(,[A-Za-z]+)*$
在寫兩個答案(由acdcjunior和SK9)的時間。拿你的選擇! – SK9
你所有的例子被拒絕的值仍然有效csv的 –