Используйте FindAll () метод Match
Описание:
метод FindAll () используется для поиска всех строк , в соответствии с регулярным выражением во всей строке и возвращается в виде списка . Если матч будет успешным. Список содержит совпадающую структуру возвращается, в противном случае она возвращает пустой список.
re.findall(pattern,string,flags)
Пример 1:
import re
pattern=r'mr_\w+'
string='MR_SHOP mr_shop'
match=re.findall(pattern,string,re.I)
print(match)
результат
['MR_SHOP', 'mr_shop']
Пример 2:
import re
string='项目名称MR_SHOP mr_shop'
match=re.findall(pattern,string,re.I)
print(match)
результат
['MR_SHOP', 'mr_shop']
Примечание:
import re
pattern=r'[1-9]{1,3}(\.[0-9]{1,3}){3}'
str1='127.0.0.1 192.168.1.66'
match=re.findall(pattern,str1)
print(match)
результат
['.1', '.66']
Если пакет содержит заданный шаблон список строк текста возвращается с пакетными спичками. (Т.е. только соответствовать строке массива в скобках)
pattern=r'(\.[0-9]{1,3}){3}'
str1='127.0.0.1 192.168.1.66'
match=re.findall(pattern,str1)
print(match)
Результаты:
['.1', '.66']
При этом анализ, шаблон строки (. [0-9] {1,3}) {3} означает.
Во- первых, [0-9] и \ д имеют значения выражены одинаковые цифры соответствия, {1,3} указывает на матч предыдущего символа по меньшей мере , один раз, до 3 раз. {3} , который соответствует три раза предыдущего символа.
Здесь: соответствие . (Точка) начинают за цифрами ( от 0 до 9 , может быть произвольным) количество и поверхность может быть один или два, до трех. А именно следующие ситуации:
0,05 или 0,66, или .192 и так далее.
{3} соответствует три раза, т.е. три последовательных этого типа, «127.0.0.1 192.168.1.66» можно увидеть .0.0.1, появилось три раза и три раза подряд .168.1.66 также. Таким образом, результаты: [ '1' '66'].
В противном случае, если пакет соответствует внутренней потребности следующим образом:
Первый письменный:
вся строка шаблона с помощью пару скобок группировки. И возвращает список каждого элемента (кортеж) первого элемента.
import re
pattern=r'([1-9]{1,3}(\.[0-9]{1,3}){3})'
str1='127.0.0.1 192.168.1.66'
match=re.findall(pattern,str1)
for i in match:
print(i[0])
Результаты:
127.0.0.1
192.168.1.66
Второй способ:
оригинальная группа в плюс :? Capture поставила группу в не-захвате группу.
import re
pattern=r'[1-9]{1,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', '192.168.1.66']
Готовые ...