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

java replaceall的一个有关问题

2012-08-17 
java replaceall的一个问题String ss I am a student,I come from tianjinString Keywords ss.repl

java replaceall的一个问题
String ss = "I am a student,I come from tianjin";
String Keywords = ss.replaceAll("I[^(come)]come","")
.replaceAll("tianjin", "");
System.out.println(Keywords);

我想从I匹配到come之前(一定是要检测在这个单词之前,单个字符不行),将从I到come的所有字符替换掉,然后再替换后面的tianjin,最后输出from,请问我这么写为什么不对?应该怎么写才行。非常感谢。

[解决办法]
*
*?
两者都是修饰其前面的一个字符或整个括号,而不会作用于后面的字符


探讨

*是贪婪匹配的,它会先一次性匹配到字符串的结尾,然后不断回溯
*?是非贪婪匹配的,它每往后匹配一个字符都会去看看后面的come满足不满足条件

如果我没记错的话应该是这样

引用:

ticmy朋友,?come 就表示come这个字符串出现一次或0次吗?如果(come)?表示什么意思呢?这俩有什么区别吗?我验证过"I am a student,I come fro……

热点排行