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

正则表达式是什么意思: (.+?),该怎么解决

2012-04-11 
正则表达式是什么意思: (.+?)正则表达式是什么意思: (.+?)[解决办法]点代表任意字符(根据其他Pattern参数,

正则表达式是什么意思: (.+?)
正则表达式是什么意思: (.+?)

[解决办法]
点代表任意字符(根据其他Pattern参数,可能包括换行符,默认不包括)
+代表前面的部分出现1到多次
*代表前面的部分出现0到多次
?代表前面的部分出现1到多次(这个不是+?的?)

X+,X*,X?称之为贪婪(Greedy)匹配,只要符合条件,可以一直匹配到最后

X+?,X*?,X??称之为勉强(Reluctant)匹配,匹配第一个符合条件的,就终止
比如:

Java code
    System.out.println("abc".replaceAll(".+", "X"));    System.out.println("abc".replaceFirst(".+", "X"));    System.out.println("abc".replaceAll(".+?", "X"));    System.out.println("abc".replaceFirst(".+?", "X"));
[解决办法]
最外面的括号,称之为捕获
1 类似数学运算的括号(这个建议用非捕获的(?:X)来替代)
2 可以使用编号在正则表达式中,引用
比如
Java code
    System.out.println("abc".replaceAll("(.+?)", "__$1__")); //__a____b____c__ 

热点排行