匹配java中的任何utf8非空格字符?

时间:2017-03-09 18:03:44

标签: java regex utf-8

我花了好几个小时搜索和尝试。它们都不起作用。需要创建一个允许

的正则表达式模式

'汉字'

't \ n'

'some char'

但不允许

"       "

''

我在这里使用的模式

Pattern.compile("[\\u0080-\\u9fff]+");

正在进行完整的字符串匹配,而我只想要匹配的部分字符串:(

感谢您提供任何提示/线索

3 个答案:

答案 0 :(得分:1)

要将字符串与至少一个非空白字符匹配(在javax.validation.constraints.Pattern中需要完整字符串匹配,即默认情况下已锚定),请使用

"(?s)\\s*\\S.*"

查看demo of how this regex works

默认情况下,接受模式锚定它的方法允许省略^$锚点(它们出现在正则表达式演示中)。

如果您不希望输入中有任何换行符,请从模式中省略(?s)Pattern.DOTALL“嵌入标记选项”,或者在其他来源中省略内联修饰符(选项)

答案 1 :(得分:0)

为什么不在这种情况下使用String.contains()

答案 2 :(得分:0)

不是空格\S+就是这样:(演示http://fiddle.re/nza9hn

"[^\\u0009-\\u000D\\u0020\\u0085\\u00A0\\u1680\\u2000-\\u200A\\u2028-\\u2029\\u202F\\u205F\\u3000]+"
相关问题