A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 忘记了 中级黑马   /  2014-1-10 19:35  /  1350 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. }
复制代码





评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

2 个回复

倒序浏览
(.)\\1,意思是匹配除\n以外任意数后面跟着\跟着1的字符串。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
(.) : .的意思是匹配单个字符,()是将这个字符分组,而且分组号为1。
如字符串“regex",每一个都可以匹配到,每一个都是一组。
\\1,就是第一个分组的内容,所以合在一起(。)\\1就是指有两个重复的字符,
而\\1+则是指和第一个分组的内容相同的连续重复,(。)\\1+就是指连续重复字符,不限个数。
二者的正则匹配是不同的,所以最后结果是不同的。
如果想知道的更多,可以看下第25天视频,专门讲正则表达的,或者去网上搜下资料。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马