python入门问题,关于正则表达式。求高手通俗解答。

图片中,这部分例题是说中间包含分组也就是小括号了,所以pattern其他的东西就没用了,但是pattern最后是{3},这个意思不是说(\.[0-9]{1,3})中后面的数字需要进行3次吗,那为什么返回.1和.66,难道str1前面的.0还有.168和.1什么的就不满足吗?

另外第二张图也是这题,他在r后面加了整体的小括号,但是最后却输出item[0],我试了一下他的item[1]就是前面没加括号时的.1和.66,我就想不明白了,整体意思不是说第一段是1位到3位的数字,后面有三段是“.”加上一到三位的数字的意思吗?那么加上小括号后为什么还有item[1]这些东西,也就是为啥还有.1和.66这两个东西怎么来的。

另外希望高手简单地补充补充这个正则表达式写模式字符串的时候,也就是这个r后面,连接顺序应该怎么样的呢?看还行,自己写就崩啊。

pattern=r'([1-9]{1,3}(\.[0-9]{1,3}){3})'

[1-9]{1,3}表示匹配由1-9之间任意数组成的1位、2位或3位数,如1,12,123

\.[0-9]{1,3}表示匹配1个点接由0-9之间任意数组成的1位、2位或3位数,如.1,.12,.123

(\.[0-9]{1,3}){3}表示\.[0-9]{1,3}的匹配条件重复3次,如.1.2.3,.1.12.123,168.1.1

([1-9]{1,3}(\.[0-9]{1,3}){3})表示匹配1-9之间任意数组成的1位、2位或3位数+1个点接由0-9之间任意数组成的1位、2位或3位数 * 3次,所以可以匹配127.0.0.1,192.168.1.66

()仅仅表示括号内的匹配项作为一组匹配,不会影响匹配的条件,

温馨提示:答案为网友推荐,仅供参考
相似回答