-2

假设句子是There are playing, they are brothers.

无论如何将标点符号分隔为单个单词,输出如下: There are playing , they are brothers .

4

2 回答 2

1

这对我有用:

String str = "There are playing, they are brothers.";
System.out.println(str.replaceAll("\\s*([,.?!\"'])\\s*", " $1 "));

产量:

There are playing , they are brothers .

此正则表达式将用空格替换任何可能具有前导/尾随空格的标点符号,然后是相同的标点符号和另一个空格。此块:[,.?!\"']表示您可以更改的所有标点符号。您可以添加/删除您心中的内容。标志也可以做到这\W一点,但它会改变一组特定的字符(任何不是字母、数字或下划线的字符)。

于 2012-08-09T06:00:35.450 回答
0

你可以试试正则表达式吗?

就像是: s/(\w)([,.])/\1 \2/g

它本质上是一个非单词字符(这可能是 \W),然后是找到的标点符号,替换为第 1 组、空格、第 2 组。

我做了一个演示,可以在这里找到

于 2012-08-09T05:47:11.460 回答