Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在两个html标记之间重新编译_Python_Regex_Beautifulsoup - Fatal编程技术网

Python在两个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(

这应该很简单,但我不太明白。我想从这个html字符串中获取名称:

  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']