正则表达式匹配的元素的结果是找最长的,而且不能有交集吗?

来源: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回答

好帮手慕小尤

2020-02-26

同学你好,1. .* 是任意字符出现0次或者多次的意思。而^ab.*是获取以ab开头的内容。所以遇到ad开头的内容会将后面的内容全部匹配,而不会分成一段一段的。所以无法匹配在文本中存在ab的内容。

2. ^12\d*是匹配以12开头并后面内容全是数字的内容,所以匹配到字母a之前的数字(1212)。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

电磁护盾

提问者

2020-02-26

http://img.mukewang.com/climg/5e561446099e107c06400376.jpg

原字符串为1212a121212,正则表达式为^12\d*,匹配结果怎么是1212,后面的121212为什么没匹配到?

0

0 学习 · 9666 问题

查看课程