帮忙解析一下这个正则表达式

((?<=\d)\d{3})+\b,用它对1234567890进行查找时结果是234567890((?<=\d)\d{3})+结果是234567890((?<=\d)\d... ((?<=\d)\d{3})+\b,用它对1234567890进行查找时结果是234567890

((?<=\d)\d{3})+结果是
234567890

((?<=\d)\d{3})结果是
234
567
890

麻烦讲的详细一些
展开
 我来答
夸父逐光
2011-12-09 · TA获得超过103个赞
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:181万
展开全部
(?<=\d) 匹配左侧是数字的位置(注意,匹配的是位置)
(?<=\d)\d 匹配一个数字,它的左边是一个数字。
(?<=\d)\d{3} 匹配三个数字,它们的左边是一个数字(即第一个数字的左边是数字,然后再来俩数字)
((?<=\d)\d{3})+ 匹配三个数字,它们的左边是一个数字。这种情况至少出现一次。

1 左侧不是数字
234 第一次匹配((?<=\d)\d{3})
567 第二次
890 第三次
追问
(?<=\bre)\w+\b会匹配以re开头的单词的后半部分(除了re以外的部分),例如在查找reading a book时,它匹配ading。断言应该是你上面说的不消耗字符的,但是为什么这里输出不是reading呢,re去哪了。
追答
(?<=\bre)\w 匹配一个左边是\bre的字母。。。
自然是从a开始啊,r的左边不是\bre
这正是环视只匹配位置不匹配字符(就是你说的不消耗字符)的效果啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式