Регулярные выражения Python - re.search () против re.findall ()
Для школы я должен написать скрипт Python RE, который извлекает IP-адреса. Регулярное выражение, которое я использую, похоже, работает сre.search()
но не сre.findall()
.
exp = "(\d{1,3}\.){3}\d{1,3}"
ip = "blah blah 192.168.0.185 blah blah"
match = re.search(exp, ip)
print match.group()
Совпадение для этого всегда 192.168.0.185, но это отличается от меняre.findall()
exp = "(\d{1,3}\.){3}\d{1,3}"
ip = "blah blah 192.168.0.185 blah blah"
matches = re.findall(exp, ip)
print matches[0]
0.
Мне интересно почемуre.findall()
дает 0. когдаre.search()
дает 192.168.0.185, так как я использую одно и то же выражение для обеих функций.
И что я могу сделать, чтобы сделать это такre.findall()
будет правильно следовать выражению? Или я совершаю какую-то ошибку?