这应该是非常直截了当的,但我不能把它弄得一团糟。我想从这个html字符串中获取名称:
soup = </ul>
Brian
<p class="f">
我试过了:
namePattern = re.compile(r'(?<=</ul>)(.*?)(?<=<p)')
rev.reviewerName = re.findall(namePattern, str(soup))
和
namePattern = re.compile(r'</ul>(.*?)<p')
你能告诉我怎么做吗?感谢。
答案 0 :(得分:3)
默认情况下,.
与换行符不匹配。您需要指定re.DOTALL
作为re.compile()
的第二个参数。
请注意,这将包含新行作为捕获组的一部分。如果您不想这样,可以将它们与\s*
明确匹配:
In [5]: re.findall(r'</ul>\s*(.*?)\s*<p', s)
Out[5]: ['Brian']