我需要将一个字符串(在 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]"
这是另一个例子,其中 X
是 a-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/