正则表达式匹配的元素的结果是找最长的,而且不能有交集吗?
来源:1-8 定位匹配
电磁护盾
2020-02-26 14:39:59
为什么原字符为abababab,输入正则表达式^ab.*的时候,只有一处匹配abababab。 为什么不会匹配两处abab和abab(把前两组ab和后两组ab当成两处匹配)?
或者为什么不会匹配到10处? abababab,ababab(前三个ab),ababab(后三个ab),abab(前两个ab),abab(中间两个ab),abab(后两个ab),ab(第一个ab),ab(第二个ab),ab(第三个ab),ab(第四个ab)?
2回答
同学你好,1. .* 是任意字符出现0次或者多次的意思。而^ab.*是获取以ab开头的内容。所以遇到ad开头的内容会将后面的内容全部匹配,而不会分成一段一段的。所以无法匹配在文本中存在ab的内容。
2. ^12\d*是匹配以12开头并后面内容全是数字的内容,所以匹配到字母a之前的数字(1212)。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
电磁护盾
提问者
2020-02-26
原字符串为1212a121212,正则表达式为^12\d*,匹配结果怎么是1212,后面的121212为什么没匹配到?
相似问题
回答 2