Предположим, у меня есть следующая строка:FindAll() поведение (питон 2,7)
"<p>Hello</p>NOT<p>World</p>"
и я хочу, чтобы извлечь слова Hello
и World
я создал следующий скрипт для работы
#!/usr/bin/env python
import re
string = "<p>Hello</p>NOT<p>World</p>"
match = re.findall(r"(<p>[\w\W]+</p>)", string)
print match
Меня не особенно интересуют зачистки < p> и </p>, поэтому я никогда не беспокоился о том, чтобы делать это в сценарии.
Интерпретатор печатает
так, очевидно, видит первый < р> и последний </P>, игнорируя в период между тегами. Не должно ли findall()
вернуть все три набора совпадающих строк? (строка, которую он печатает, и два слова).
И если это не так, как я могу изменить код для этого?
PS: Это для проекта, и я нашел альтернативный способ сделать то, что мне нужно, так что это по образовательным причинам, я думаю.
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – BrenBarn