如何删除可能标记字符串结尾的标点符号?

时间:2013-09-28 01:45:32

标签: java regex string

我有一个以下形式的字符串:

String s = "......????!!!!! I am doing!!!???good , you say!!! ...how are...??!! you doing!?????.....";

我希望这个字符串的输出如下:

"I am doing!!!???good you say how are you doing"

我无法想出一个可以为我做这个的正则表达式,我正在尝试的是一种扫描字符串并附加到文本的强力方法,但是有很多情况可以测试它如果有人可以帮我弄清楚正则表达式或更有效的方法,那就太好了。

更具体地说,我希望这样做:删除所有前导和尾随终止符,但保留字符串中出现的那些,如“说???? what”

1 个答案:

答案 0 :(得分:2)

这适用于您的示例:

s = s.replaceAll("(?<=^| )[.?!]+|[.?!]+(?= |$)", "");

测试了这一行,它会产生你要求的输出。

删除空格旁边或两端的所有标点符号序列。