首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

求一正则表达式解决思路

2013-01-19 
求一正则表达式比如一段英文:Sorry, I cant go out today!这么切割成一个一个的单词Sorry I cant go o

求一正则表达式
求一正则表达式解决思路
比如一段英文:'Sorry, I can't go out today!'
这么切割成一个一个的单词Sorry I can't go out today.
我显示根据空格split,然后用replaceAll("\\p{P}", "");去掉所有标点符号,
但是can't也变成cant了,有什么更好的方法吗?
[解决办法]
\\p{P} 代表什么字符? 

这样试试
replaceAll("[\\p{P}&&[^']]", "");
[解决办法]
\\p{P}\\s+这样去split试试
[解决办法]
str = str.replaceAll("(?<![a-zA-Z])'", "")     //先将前面没有字母的 ' 符号删掉
   .replaceAll("[\\p{Punct}&&[^']]", "");
[解决办法]


String s="'Sorry, I can't go out today!'";
//先把开头和结尾的'以及'前面不是字母的以及除了'外的其它标点符号先替换掉,再用空白字符进行分割
String[] sArray=s.replaceAll("^'+
[解决办法]
'+$
[解决办法]
(?<![A-Za-z])'+
[解决办法]
[\\p{Punct}&&[^']]+","").split("\\s+");
System.out.println(sArray.length);
for(String str:sArray)
   System.out.println(str);

[解决办法]
用substring这个属性返回一个新字符串试试
[解决办法]
你用substring吧,我刚才试了一下,不会把can't变成cant
[解决办法]
API查的源码 完美解决

Pattern p = Pattern.compile("'
[解决办法]
,");
 Matcher m = p.matcher("'Sorry, I can't go out today!'");
 StringBuffer sb = new StringBuffer();
 while (m.find()) {
     m.appendReplacement(sb, "");
 }
 m.appendTail(sb);
 System.out.println(sb.toString());

热点排行