java - 正则表达式拆分字符串(在 Java 中)以便保留空格?

标签 java regex string split

我需要将一个字符串(在 Java 中)拆分成单个单词......但我需要保留空格。

我需要拆分的文本示例如下:
美国广播公司。 . . .防御力。 . . .生长指数

我需要查看“ABC”、“...”、“DEF”、“...”和“GHI”。

显然,拆分空格字符 \s 是行不通的,因为所有空格都被合并为一个空格。

有什么建议吗?

谢谢

最佳答案

在这种情况下,看起来您可以在 \b 上拆分("\\b" 作为字符串文字)。

通常,您希望在零宽度匹配结构上进行拆分,\b 就是这样,但也可以使用环视。

相关问题


根据自定义单词边界拆分

如果 \b 不符合您的定义,您始终可以使用断言定义自己的边界。

例如,以下正则表达式在元字符类 X 及其补码之间的边界处拆分

(?=[X])(?<=[^X])|(?=[^X])(?<=[X])

在下面的例子中,我们将X定义为\d:

    System.out.println(java.util.Arrays.toString(
        "007james123bond".split(
            "(?=[X])(?<=[^X])|(?=[^X])(?<=[X])".replace("X", "\\d")
        )
    )); // prints "[007, james, 123, bond]"

这是另一个例子,其中 Xa-z$:

    System.out.println(java.util.Arrays.toString(
        "$dollar . . blah-blah   $more gimme".split(
            "(?=[X])(?<=[^X])|(?=[^X])(?<=[X])".replace("X", "a-z$")
        )
    )); // prints "[$dollar,  . . , blah, -, blah,    , $more,  , gimme]"

关于java - 正则表达式拆分字符串(在 Java 中)以便保留空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2961110/

相关文章:

javascript - 使用正则表达式获取由 "/"分隔的单词

c# - 在 if 语句中检查多个字符串是否为 null

c - 如何从包含宏名称的字符串访问宏

java - Android Studio 预览版 : This JVM does not support constant tag 15

java - 如何获得 5 年前的现在

java - 这会导致可变参数造成堆污染吗?

java - JVM-XX :+StringCache argument?

java - 特定词的正则表达式

java - 如何获取模式 : regex not followed by another regex 的不匹配项

Java 子串迭代问题