在 Java 中,匹配空白符(whitespace)通常使用正则表达式。下面按常见需求给你一个完整说明。
空白符一般包括:
' '\t\n\r\f\s(最常用)String regex = "\\s";
⚠️ 注意:Java 字符串中要写成 \\s
String text = "hello world";
boolean hasWhitespace = text.matches(".*\\s.*");
System.out.println(hasWhitespace); // true
"\\s+" // 一个或多个空白符
String text = "a b\tc\n d";
String[] arr = text.split("\\s+");
// 结果: ["a", "b", "c", "d"]
"\\S" // 单个非空白字符
"\\S+" // 一个或多个非空白字符
text.matches("\\s*")
text = text.trim(); // 只处理 ASCII 空白
✅ 推荐(Java 11+)
text = text.strip(); // 支持 Unicode
text = text.stripLeading();
text = text.stripTrailing();
text = text.replaceAll("\\s+", "-");
\s 在 Java 中到底匹配什么?在 Java 中:
\s == [ \t\n\x0B\f\r]
⚠️ 默认不包含全角空格、不间断空格等 Unicode 空白
如果你要匹配所有语言中的空白符(如中文全角空格):
"\\p{IsWhiteSpace}"
✅ 示例:
String text = "hello world"; // 全角空格
boolean match = text.matches(".*\\p{IsWhiteSpace}.*");
System.out.println(match); // true
❌ 错误写法:
"\\s+" // 正确
"\s+" // 错误(编译错误)
| 需求 | 正则 |
|---|---|
| 单个空白 | \s |
| 多个空白 | \s+ |
| 非空白 | \S |
| Unicode 空白 | \p{IsWhiteSpace} |
| 拆分空白 | split("\\s+") |
如果你有具体场景(比如:解析日志、校验输入、处理中文文本),可以直接贴代码,我可以帮你写精确的正则。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。