如何将任何与单词组合的标点符号分成单个单词?

时间:2012-08-09 05:44:14

标签: java string

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

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

2 个答案:

答案 0 :(得分:1)

这对我有用:

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

收率:

There are playing , they are brothers .

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

答案 1 :(得分:0)

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

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

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

我做了一个演示,available here