Python在两个html标记之间重新编译
这应该很简单,但我不太明白。我想从这个html字符串中获取名称:Python在两个html标记之间重新编译,python,regex,beautifulsoup,Python,Regex,Beautifulsoup,这应该很简单,但我不太明白。我想从这个html字符串中获取名称: soup = </ul> Brian <p class="f"> soup= 布瑞恩 我试过: namePattern = re.compile(r'(?<=</ul>)(.*?)(?<=<p)') rev.reviewerName = re.findall(namePattern, str(soup)) namePattern=re.compile(
soup = </ul>
Brian
<p class="f">
soup=
布瑞恩
我试过:
namePattern = re.compile(r'(?<=</ul>)(.*?)(?<=<p)')
rev.reviewerName = re.findall(namePattern, str(soup))
namePattern=re.compile(r')(?默认情况下,
与换行符不匹配。您需要将指定为的第二个参数
请注意,这将包括作为捕获组一部分的换行符。如果不希望这样,可以显式地将它们与\s*
匹配:
In [5]: re.findall(r'</ul>\s*(.*?)\s*<p', s)
Out[5]: ['Brian']
[5]中的:re.findall(r'\s*(.*?)\s*这是您拥有的完整字符串吗?不,还有更多,我需要显示它吗?由于这是标记为BeautifulSoup
,我有点惊讶于您试图使用正则表达式来获取
后面的内容。例如,类似于s.find(“p”,“{class:“f”)的东西.previous.strip()
应该返回“Brian”
[我的意思是,仅给出您显示的位。]感谢DSM,我不知道该方法。
In [5]: re.findall(r'</ul>\s*(.*?)\s*<p', s)
Out[5]: ['Brian']