我需要防止字段具有雙下劃線或空格。我希望在字段中沒有匹配時發生錯誤,而不是嘗試匹配以檢查錯誤。我幾乎有這個模式,但是當字符串以雙下劃線開始時,我似乎無法阻止匹配。以下是我有:正則表達式排除字符
(^(:^ \ S)(:((?:?。?!?__ | \ S)))* $)
我需要防止字段具有雙下劃線或空格。我希望在字段中沒有匹配時發生錯誤,而不是嘗試匹配以檢查錯誤。我幾乎有這個模式,但是當字符串以雙下劃線開始時,我似乎無法阻止匹配。以下是我有:正則表達式排除字符
(^(:^ \ S)(:((?:?。?!?__ | \ S)))* $)
嘗試:
^([^_\s]|(_(?!_)))*$
這應該匹配由不是_
或空白的字符組成的任何字符串,以及任何不是_
後面跟有的字符。
什麼 「(\\ \\小號S | __)」 尋找只爲雙空格或雙下劃線:
Pattern reg = Pattern.compile("(\\s\\s|__)");
//If the pattern is not found the String is valid
System.out.println(! reg.matcher(" v a l i d e").find());
System.out.println(! reg.matcher("__invalide").find());
System.out.println(! reg.matcher("_valide_").find());
System.out.println(! reg.matcher("InVALIDE ").find());
System.out.println(! reg.matcher("in__va lid").find());
I only需要知道是否有兩個空格,不需要匹配更多,這種情況下效率不高。 –
@Jan下劃線是允許的,只有雙下劃線是無效的。 –
@DarthAndroid:對,你誤解了。 – Jan
嘗試['String pattern =「^(?:(?!(?:__ | \\ s))。)* $」'](https://regex101.com/r/cV3cD1/1) –