Регулярные выражения 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() будет правильно следовать выражению? Или я совершаю какую-то ошибку?

Ответы на вопрос(2)

Ваш ответ на вопрос