Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的非空白匹配_Java_Regex_String_Whitespace - Fatal编程技术网

Java中的非空白匹配

Java中的非空白匹配,java,regex,string,whitespace,Java,Regex,String,Whitespace,我想检测包含非空白字符的字符串。现在我正在尝试: !Pattern.matches("\\*\\S\\*", city) 但它似乎不起作用。有人有什么建议吗?我知道我可以修剪字符串并测试它是否等于空字符串,但我更愿意这样做\S(大写S)匹配非空白,因此您不必否定匹配的结果 另外,尝试Matcher的方法find而不是Pattern.matches您认为正则表达式到底匹配什么 试一试 find方法将搜索部分匹配,而不是完全匹配。这似乎是您所需要的行为。的类非常适合这种情况: boolean ha

我想检测包含非空白字符的字符串。现在我正在尝试:

!Pattern.matches("\\*\\S\\*", city)
但它似乎不起作用。有人有什么建议吗?我知道我可以修剪字符串并测试它是否等于空字符串,但我更愿意这样做

\S
(大写S)匹配非空白,因此您不必否定
匹配的结果


另外,尝试Matcher的方法
find
而不是
Pattern.matches

您认为正则表达式到底匹配什么

试一试

find
方法将搜索部分匹配,而不是完全匹配。这似乎是您所需要的行为。

的类非常适合这种情况:

boolean hasNonWhitespace = !CharMatcher.WHITESPACE.matchesAllOf(someString);
这将根据Unicode标准匹配空格,而不是使用Java的
Character.isWhitespace()
方法根据这个匹配

city.matches(".*\\S.*")


您也可以使用regex执行另一种方法:
!aString.matches(“\\s*”)
但是,正如您已经提到的,
trim()
然后检查长度(或者
isEmpty()
)是更符合逻辑的解决方案,我希望它能匹配“任何内容,后跟一个非空白字符,后跟任何内容。”
city.matches(".*\\S.*")
Pattern nonWhitespace = Pattern.compile(".*\\S.*")
nonWhitspace.matches(city)