杰瑞科技汇

Java正则如何匹配多个空格?

Java 正则表达式处理多个空格

在 Java 中,可以使用正则表达式来处理多个连续空格的情况,以下是几种常见的用法:

Java正则如何匹配多个空格?-图1
(图片来源网络,侵删)

替换多个空格为单个空格

String input = "This    is    a    test    string.";
String result = input.replaceAll("\\s+", " ");
System.out.println(result); // 输出: "This is a test string."
  • \\s+ 匹配一个或多个空白字符(包括空格、制表符、换行符等)
  • replaceAll() 方法将所有匹配项替换为单个空格

去除字符串开头和结尾的多个空格

String input = "   This is a test string.   ";
String result = input.replaceAll("^\\s+|\\s+$", "");
System.out.println(result); // 输出: "This is a test string."
  • ^\\s+ 匹配字符串开头的多个空格
  • \\s+$ 匹配字符串结尾的多个空格
  • 表示"或"的关系

去除字符串中所有多余空格(保留单词间单个空格)

String input = "   This    is   a   test   string.   ";
String result = input.replaceAll("\\s+", " ").trim();
System.out.println(result); // 输出: "This is a test string."
  • 先用 \\s+ 替换所有连续空白为单个空格
  • 再用 trim() 去除首尾空格

仅处理空格(不包括其他空白字符)

如果只想处理空格而不包括制表符、换行符等,可以使用:

String input = "This    is\ta test\nstring.";
String result = input.replaceAll(" +", " ");
System.out.println(result); // 输出: "This is\ta test\nstring."
  • 只匹配一个或多个空格字符

分割字符串(按多个空格分割)

String input = "This    is   a   test   string.";
String[] parts = input.split("\\s+");
for (String part : parts) {
    System.out.println(part);
}
// 输出:
// This
// is
// a
// test
// string.

注意事项

  1. \\s 包括空格、制表符(\t)、换行符(\n)、回车符(\r)等
  2. 如果只想匹配空格,使用 ` 或[ ]`
  3. 在正则表达式中, 表示"一个或多个"
  4. 对于性能敏感的场景,建议预编译正则表达式:
import java.util.regex.Pattern;
Pattern pattern = Pattern.compile("\\s+");
String result = pattern.matcher(input).replaceAll(" ");

希望这些示例能帮助你处理 Java 中的多个空格问题!

Java正则如何匹配多个空格?-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇