Java通过\\S分割

标签 java regex

我正在研究正则表达式。我尝试过

public static void main(String[] agrs) {

    String s = "I am preparing ocp";
    String[] tokens = s.split("\\S");
    System.out.println(tokens.length);
    for (String x : tokens) {
        System.out.println(x);
    }
}

显示的结果是 13 个空格。

但是,当我在字符串后面添加空格时,如下所示,

public static void main(String[] agrs) {

    String s = "I am preparing ocp ";
    String[] tokens = s.split("\\S");
    System.out.println(tokens.length);
    for (String x : tokens) {
        System.out.println(x);
    }
}

结果将为 16。

我不太明白这个正则表达式在这种情况下是如何工作的..有人可以启发我吗?

最佳答案

您想要按 \\s(小写 s)而不是大写 s 进行拆分。

你现在的方式是说 - 空白字符是分隔符,除了空白之外什么都不留下作为你的“数据”。

此外,它可能应该是 \\s+ 以允许多个连续空格作为分隔符。

关于Java通过\\S分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25111268/

相关文章:

java - 基于 JerseyExtension 的 JUnit5 测试不保持请求之间的 session

java - 正则表达式密码 - 小写字母后面不能跟小写字母,反之亦然

python - 理解 python 正则表达式

regex - 如何使用Python获取包含某种“href”格式的所有“a”标签?

Java : How to remove quotes from Json keys using regex

java - 配置文件选项未显示在 Java VisualVM for Tomcat 中

java - Synthetica Swing 它们无法正确加载

java - Eclipse:是否可以调试 CompletableFuture 调用的方法?

php - 如何在 explode 和正则表达式之间进行选择

regex - 查找和替换以模式开头的行