给解释一下这个正则表达式。 (?<=\\G.{3})abcdefghijkl这个字符串利用上面那个正则进行split,会变成abc,def,hgi,jkl谁给解释一下那个正则是怎么进行匹配的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 分解如下~(?<=...断言符号\G 目标中的第一个匹配位置.{3} 任意字符出现三次 ?<=3 是逢3或者长度小于3\G 上一个匹配的结尾 这个是java里面的正则吗?(?<=regex)应该是反向预搜索,只能提供判断这个regex是否存在吧如果简单只进行split的功能 .{3} 就可以 .{3} 以3个字符分割 我来解释下吧,首先是整个字符串"abcdefghijkl"进来,那么split("(?<=\\G.{3})")就开始分割,由于一开始没有上一个匹配内容因此\\G就在a的前面然后向后移三位,abc|defghijkl 这样就以整个"defghijkl"为依据进行分割,这时只有abc符合条件,则abc放入s[0]中,然后\\G到了c的后面,此时的abc已经被吃掉,接下来就是等同与split("(?<=\\G.{3})")来操作"defghijkl",同样是进行前面的动作.以此类推这是我的个人的看法,不知道这样的解释是否正确,期待更好的答案 匹配以上次匹配结果开头的后三个字符\G的作用有点类似于组捕获匹配的顺序是这样的1.abc2.abcdef3.abcdefghi4.abcdefghijkl红颜色的是匹配字符,黄颜色的是lookahead查找的字符串,纠正一下8楼的说法,正则里的断言符不是吃掉字符,比如说(?<=),官方解释就是lookahead,就是查找看前面有没有这个字符,也就是说匹配的指针停在当前位置,然后往前看。楼主要是实在想不通,把这个正则表达式改为(? <=.{3}) ,然后试一下,就会恍然大悟了 【散分贴】一道运算符的JAVA题,求解析 高手挑战题!!! 这种插入图片方式是否正确?? 问一个算法问题? java.bbs这样命名包? 请问 数据库表id 的high/low算法是什么 hibernate中也提到这样的概念 redhad下tomcat 不往数据库写数据 这个问题有实现的可能吗? java面试题,纠结了半天只做了一半,在线等高手解答! 画图问题,求救啊 跪求一个正则表达式 swing中JTextArea的问题
\G 目标中的第一个匹配位置
.{3} 任意字符出现三次
\G 上一个匹配的结尾
(?<=regex)
应该是反向预搜索,只能提供判断这个regex是否存在吧如果简单只进行split的功能 .{3} 就可以
.{3} 以3个字符分割
然后向后移三位,abc|defghijkl 这样就以整个"defghijkl"为依据进行分割,这时只有abc符合条件,则abc放入s[0]中,然后\\G到了c的后面,此时的abc已经被吃掉,
接下来就是等同与split("(?<=\\G.{3})")来操作"defghijkl",同样是进行前面的动作.以此类推这是我的个人的看法,不知道这样的解释是否正确,期待更好的答案
1.abc
2.abcdef
3.abcdefghi
4.abcdefghijkl
红颜色的是匹配字符,黄颜色的是lookahead查找的字符串,纠正一下8楼的说法,正则里的断言符不是吃掉
字符,比如说(?<=),官方解释就是lookahead,就是查找看前面有没有这个字符,也就是说匹配的指针停在
当前位置,然后往前看。楼主要是实在想不通,把这个正则表达式改为(? <=.{3}) ,然后试一下,就会恍然大悟了