У меня есть строка, как этотPython регулярное выражение уловах группы
string = "2014 Blah - Blah Blah Blah Blah-Blah Blah"
Я хочу, чтобы ловить группы как этот
(2014) (Бла) - (Бла) (Бла Бла Бла-Бла Бла) I пытался сделать это этим кодом
pattern = "([0-9]{4})(.*)-(\w*)\s(.*)"
search_result = re.search(r'%s'%pattern,string,re.M|re.I)
if search_result:
print search_result.groups()
else:
print "Nothing matched"
Но она возвращается
('2014', ' Blah - Blah Blah Blah Blah', 'Blah', 'Blah')
Где я ошибаюсь?
Это работает для меня, но, возможно, я знаю, что ты жадный и ungreedy на самом деле? –
@Goutam Вы можете проверить очень хорошее ** [документация здесь] (http://www.regular-expressions.info/repeat.html) ** о жадности. Вкратце, если у вас есть строка 'abcxxxc', и вы используете это жадное выражение' a. * C', вы будете сопоставлять 'abcxxxc', но если вы используете невращающийся (или ленивый) quatifier, как этот' a. *? C', то вы будете соответствовать 'abc'. Жадность будет соответствовать как можно большему и нескромному как можно меньше. –