我一直在花費數小時尋找和嘗試。它們都不起作用。需要創建一個正則表達式模式,將允許匹配java中的任何utf8非空白字符?
'漢字'
'T \ N'
'一些字符'
但不允許
" "
''
模式我在這裏使用
Pattern.compile("[\\u0080-\\u9fff]+");
是做一個完整的字符串匹配,而我只想字符串的一部分匹配:(
感謝您的任何提示/線索
我一直在花費數小時尋找和嘗試。它們都不起作用。需要創建一個正則表達式模式,將允許匹配java中的任何utf8非空白字符?
'漢字'
'T \ N'
'一些字符'
但不允許
" "
''
模式我在這裏使用
Pattern.compile("[\\u0080-\\u9fff]+");
是做一個完整的字符串匹配,而我只想字符串的一部分匹配:(
感謝您的任何提示/線索
不是空白\S+
是這樣的:(演示http://fiddle.re/nza9hn)
"[^\\u0009-\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000-\\u200A\\u2028-\\u2029\\u202F\\u205F\\u3000]+"
它不會傳遞我的「密鑰\\漢字」輸入。這是我的模式驗證@Pattern(regexp =「[^ \\ u0009 - \\ u000D \ u0020 \ u0085 \ u00A0 \ u1680 \ u2000 \ \ u200A \ u2028 - \ u2029 \ u202F \\ u205F \\ u3000] +「, message =」不能爲空「, flags = {Pattern.Flag.UNICODE_CASE}) – gigi2
@ gigi2 - 使用測試儀不會出現任何問題http://fiddle.re/nza9hn Press頁面打開時的Java按鈕。但是,我相信我在上面的文本中插入了一些標記。使用鏈接獲取正則表達式。你會注意到沒有設置正則表達式標誌。 – sln
要與至少一個非空格字符匹配的字符串(在需要完整的字符串匹配的javax.validation.constraints.Pattern
,即,在默認情況下錨定)使用
"(?s)\\s*\\S.*"
查看demo of how this regex works。
默認情況下接受圖案的方法允許在此處省略^
和$
錨(它們存在於正則表達式演示中)。
如果您不希望輸入中出現任何換行符,請從模式中省略(?s)
(Pattern.DOTALL
「嵌入式標誌選項」或其他來源中的內聯修飾符(選項))。
你是否在'matches()'中使用它?使用'匹配#find()' –
我實際上使用了javax.validation.constraints.Pattern中的ptn字符串。在我看來是做一個完整的字符串匹配:( – gigi2
好吧,那麼,爲什麼不使用'「(?s)\\ s * \\ S。*」'?這將需要至少一個非空白字符在一個如果你不希望有任何換行符,可以省略'(?s)' –