2014-10-30 32 views
-2

有没有一种方法可以摆脱字符串前端和末尾的标记?在字符串前后摆脱标点的正则表达式

例如,

"hello," -> "hello" 
"hello;" -> "hello" 

换句话说,删除所有标点后,之前,或者一个字内,除单引号和单短线,如果他们后面更多的字母。

更多的例子,

"lies,", "'This", "all-eating" and "deserv'd." 

将成为

"lies", "this", "all-eating" and "deserv'd" 
+1

'后除去所有标点,之前,或word'内为一个字内提供一个例子。并且不要忘记显示你的尝试。 – 2014-10-30 04:34:11

+0

“谎言”,“这个”,“所有食物”和“受保护的”,它们转到“谎言”,“这个”,“所有食物”和“受保护的” – paupau 2014-10-30 04:38:49

+0

什么是预期产出?在你的问题中添加上面的评论。 – 2014-10-30 04:43:06

回答

0

使用poxix正则表达式项\p{Punct}

str = str.replaceAll("^\\p{Punct}*|\\p{Punct}+$|\\p{Punct}{2,}", "") 

中期字标点符号使用的是“两个或两个以上去除“ 比赛。


一些测试代码:

for (String str : new String[]{"hello,", "hello;", "li--es", "'This", "all-eating", "deserv'd."}) 
    System.out.println(str.replaceAll("^\\p{Punct}*|\\p{Punct}+$|\\p{Punct}{2,}", "")); 

输出:

hello 
hello 
lies 
This 
all-eating 
deserv'd 
相关问题