我一直在花费数小时寻找和尝试。它们都不起作用。需要创建一个正则表达式模式,将允许匹配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)' –