Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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:找不到文本_Python_Regex - Fatal编程技术网

Python:找不到文本

Python:找不到文本,python,regex,Python,Regex,此正则表达式: <span style=\"color: #008000;\" data-iceapw=\"1\">HIGH<\/span> 尝试查找以下文本: <span style="color: #008000;" data-iceapw="1">HIGH<\span> <span style="color: #008000;"

此正则表达式:

<span style=\"color: #008000;\" data-iceapw=\"1\">HIGH<\/span> 
尝试查找以下文本:

<span style="color: #008000;" data-iceapw="1">HIGH<\span> 
<span style="color: #008000;" data-iceapw="1">HIGH<\span>
在类似这样的代码片段中,例如:

<p data-iceapw="9" data-iceapc="4">Factual Reporting: <strong data-iceapw="1" data-iceapc="1"><span style="color: #008000;" data-iceapw="1">HIGH</span><br />
</strong>World Press Freedom Rank: <span style="color: #ff9900;" data-iceapw="2" data-iceapc="1"><strong data-iceapw="2">USA 45/180</strong></span></p>
如果我们使用此网站进行测试,我们可以检查是否正确:

但是,当我尝试对Python执行同样的操作时,Python没有检测到以下文本:

<span style="color: #008000;" data-iceapw="1">HIGH<\span> 
<span style="color: #008000;" data-iceapw="1">HIGH<\span>
我尝试检测该文本的python代码是:

re.search('<span style=\"color: #008000;\" data-iceapw=\"1\">HIGH<\/span>', str(soup), re.IGNORECASE)
我做错了什么

编辑一:

我不明白为什么这个正则表达式工作得很好:

 re.search('<strong><span style=\"color: #008000;\">HIGH<br>\n<\/span><\/strong>', str(soup), re.IGNORECASE)
帮我找到我要找的代码。但是,另一个正则表达式不起作用:

re.search('<span style=\"color: #008000;\" data-iceapw=\"1\">HIGH<\/span>', str(soup))
当我试图找到这个:

<span style="color: #008000;" data-iceapw="1">HIGH</span>
在此代码中:

<p data-iceapw="9" data-iceapc="4">Factual Reporting: <strong data-iceapw="1" data-iceapc="1"><span style="color: #008000;" data-iceapw="1">HIGH</span><br />
</strong>World Press Freedom Rank: <span style="color: #ff9900;" data-iceapw="2" data-iceapc="1"><strong data-iceapw="2">USA 45/180</strong></span></p>

您已经有了一个soup对象,为什么不使用它来搜索呢

从bs4导入BeautifulSoup 数据收集\ 不是这个 高的 也不是这个 ' soup=BeautifulSoupdata,html.parser matches=soup。选择span[data iceapw='1'] 对于匹配中的跨度: printspan
\/在您的正则表达式中与字符串中的\不匹配。哪个HTML以反斜杠结尾?@JoséCarlos在Python未检测到我之后的部分中此文本:。。部分是在试图找到这个文本之后:所以不清楚你的实际字符串是什么。我不明白,因为在其他正则表达式中,我用了scape/它对我有效,但在这种情况下它不起作用。哪种方法是正确的?可能发生的情况是,BeautifulSoup将属性存储为无序字典,因此,在通过strsoup呈现为文本时,顺序被交换。搜索HTML或XML时,使用正则表达式不是首选方法的另一个原因。