2013-09-28 53 views
-1

,我有以下形式的字符串:如何删除可能标记字符串结尾的标点符号?

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

,我想这个字符串的输出如下:

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

,我不能拿出一个正则表达式,可以为我做这件事,我正在尝试的是一种扫描字符串并追加到文本的蛮力方式,但是有很多情况可以测试出来,如果有人能帮我找出正则表达式或更有效的方法来做这将是伟大的。

更具体地说我想要做的:删除所有的开头和结尾的终止,但会保留这些字符串作为内发生的“说什么????”

+0

请看[this](http://stackoverflow.com/a/15567045/1558430)。但是,您需要修改它以适应您的需求。 – Brian

+1

我认为这可能会更好*禁止任何在一个句子末尾使用多个标点符号的用户:-) –

+0

我实际上需要这个解析例程,我只是解析一些随机文本,而只是似乎无法得到正则表达式:( – AnkitSablok

回答

2

这会为你的工作,例如:

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

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

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

+0

谢谢你的人:)你让我的一天:) – AnkitSablok

+2

没问题:)(你应该接受这个答案,如果它最好地回答你的问题) – Bohemian