什麼是Java正則表達式匹配只包含所有詞:爪哇正則表達式匹配唯一的話(」, - ,空間)
- 從一個到Ž和甲到ž
- 的「-空間人物,但他們不能在開頭或 結束。
實例
test'test匹配
測試 '不匹配
' 測試不匹配
-test不匹配
測試 -不匹配
測試,測試比賽
什麼是Java正則表達式匹配只包含所有詞:爪哇正則表達式匹配唯一的話(」, - ,空間)
實例
test'test匹配
測試 '不匹配
' 測試不匹配
-test不匹配
測試 -不匹配
測試,測試比賽
當你指的是空格字符它是:[a-zA-Z ]
因此它檢查你的字符串是否包含az(小寫)和A-Z(大寫)字符和空白字符。如果沒有,會導致測試失敗
您可以使用以下模式:^(?!-|'|\\s)[a-zA-Z]*(?!-|'|\\s)$
下面是例子:
String s1 = "abc";
String s2 = " abc";
String s3 = "abc ";
System.out.println(s1.matches("^(?!-|'|\\s)[a-zA-Z]*(?!-|'|\\s)$"));
System.out.println(s2.matches("^(?!-|'|\\s)[a-zA-Z]*(?!-|'|\\s)$"));
System.out.println(s3.matches("^(?!-|'|\\s)[a-zA-Z]*(?!-|'|\\s)$"));
這裏是我的解決方案:
/(\w{2,}(-|'|\s)\w{2,})/g
你可以拿它來旋轉Regexr.
它首先檢查\w
的單詞,然後使用「或」邏輯使用|
,然後是另一個單詞的三個限定符中的任何一個。括號{}
確保兩端的單詞至少有2個字符長,因此不會捕獲像don't
這樣的收縮。您可以將其設置爲任何值以防止更長的單詞被捕獲或完全忽略它們。
注意:\w
也會尋找_
下劃線。如果你不想,你可以用[a-zA-Z]
取代它,像這樣:
/([a-zA-Z]{2,}(-|'|\s)[a-zA-Z]{2,})/g
至少,發表您的匹配和不匹配的例子。 –
與實例編輯 – user2602584
可以使用'^ [A-ZA-Z] [A-ZA-Z'\ S - ] * [A-ZA-Z] $'(將需要輸入至少2個字符) – anubhava