黑马程序员技术交流社区
标题:
正则表达式问题
[打印本页]
作者:
忘记了
时间:
2014-1-10 19:35
标题:
正则表达式问题
public class Demo {
public static void main(String[] args) {
String str = "sdqqfgkkkhjppppkl";
String regex = "(.)\\1";//(.) \\1这句怎么理解?
// String regex = "(.)\\1+";//这句为什么会改变输出结果
String[] strArray = str.split(regex);
for (String s : strArray) {
System.out.println(s);
}
}
}
复制代码
作者:
xu6148152
时间:
2014-1-10 21:07
(.)\\1,意思是匹配除\n以外任意数后面跟着\跟着1的字符串。
作者:
doitforyou
时间:
2014-1-11 18:43
(.) : .的意思是匹配单个字符,()是将这个字符分组,而且分组号为1。
如字符串“regex",每一个都可以匹配到,每一个都是一组。
\\1,就是第一个分组的内容,所以合在一起(。)\\1就是指有两个重复的字符,
而\\1+则是指和第一个分组的内容相同的连续重复,(。)\\1+就是指连续重复字符,不限个数。
二者的正则匹配是不同的,所以最后结果是不同的。
如果想知道的更多,可以看下第25天视频,专门讲正则表达的,或者去网上搜下资料。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2