黑马程序员技术交流社区

标题: 正则表达式问题 [打印本页]

作者: 忘记了    时间: 2014-1-10 19:35
标题: 正则表达式问题
  1. public class Demo {
  2.         public static void main(String[] args) {
  3.                 String str = "sdqqfgkkkhjppppkl";
  4.                 String regex = "(.)\\1";//(.)   \\1这句怎么理解?
  5.         //        String regex = "(.)\\1+";//这句为什么会改变输出结果
  6.                 String[] strArray = str.split(regex);
  7.                 for (String s : strArray) {
  8.                         System.out.println(s);
  9.                 }
  10.         }
  11. }
复制代码






作者: 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