求助大佬关于正则表达式(RE)有关分组的简单问题
python吧
全部回复
仅看楼主
level 6
o0lijunyi0o 楼主
首先分享代码:
import re
pattern = r'([1-9]{3}(\.[0-9]{1,3}){3})'
str1 = '127.0.0.1 192.168.1.66'
match = re.findall(pattern,str1)
print(match)
————————————————
运行结果:
[('127.0.0.1', '.1'), ('192.168.1.66', '.66')]
[Finished in 85ms]
————————————————
问题:请问大佬们为什么结果不是[('127.0.0.1', '.0','.1'), ('192.168.1.66', '.66')],即没有出现'.0'。
————————————————
我的理解:
模式字符串中出现了(\.[0-9]{1,3})分组,运行结果中会将(\.[0-9]{1,3})匹配出的字符串放入结果中元组中,出现('127.0.0.1', '.0','.1'),但是为什么没有匹配出'.0'呢?想不通。
2023年09月20日 09点09分 1
level 6
o0lijunyi0o 楼主
忘记附图了,这里补上
2023年09月20日 09点09分 3
level 12
正则表达式的第二个分组只存储最近一次匹配捕获到的结果。
2023年09月20日 10点09分 4
原来如此,谢谢大佬解惑
2023年09月20日 10点09分
1