Найти - Пользователи
Полная версия: Регулярные выражения
Начало » Python для новичков » Регулярные выражения
1
recidivist
Я совсем недавно начал знакомство с python и наткнулся на регулярные выражения,

Прочитал - понял половину, мне все нужно объяснять на примерах для того чтобы материал усвоился нормально
Одна из непоняток это метасимвол * (greedy еще называется). Как его вообще использовать в программе, или хотя бы обозначить?

 import re
a=[r'a*b', 'abcdeaa']            #Как я себе это представляю

или как?
Объясните де*илу

ps
в инете по моему вопросу натыкался только на руководства, но без примеров(((
old_monty
recidivist
Одна из непоняток это метасимвол * (greedy еще называется). Как его вообще использовать в программе, или хотя бы обозначить?
Символ * в регулярном выражении означает “совпадение с нулевым или большим количеством экземпляров”. Это значит, что группа перед звездочкой может встречаться в тексте любое количество раз подряд. Она может либо вообще отсутствовать, либо повторяться.
Например, в тексте речь идет о приключениях Бэтмена, который может быть мужчина (Batman) или женщина (Batwoman) или даже Batwowowowoman:
 >>> myRegex = re.compile(r'Bat(wo)*man')
>>> mo1 = myRegex.search('The Adventures of Batman')
>>> mo1.group()
'Batman'
>>> mo2 = myRegex.search ('The Adventures of Batwoman') 
>>> mo2.group()
'Batwoman'
>>> mo3 = myRegex.search('The  Adventures of Batwowowowoman') 
>>> mo3.group()
'Batwowowowoman'
Примечание: “greedy” на английском означает “жадный”. То есть, знак * будет пытаться найти максимальное количество повторений группы - например, ‘Batwowowowoman’.
recidivist
Спасибо, помог
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB