python - 考虑空白时,正则表达式失败
问题描述
我将正则表达式应用于以下字符串:
mystring = '[<tr class="v" id="ctl00_PlaceHolderHalf_ctl01_rot2">
<td><div class="tore_karten"><div style="float:left;padding-right:2px;">Dortmund: </div><a class="link_noicon" href="/news/fussball/bundesliga/vereine/1-bundesliga/2000-01/borussia-dortmund-17/24285/spieler_evanilson.html" style="float:left;">Evanilson</a><div style="float:left;padding-left:2px;">(90., grobes Foulspiel, <a class="link_noicon" href="/news/fussball/bundesliga/vereine/1-bundesliga/2018-19/bayern-muenchen-14/223/spieler_paulo-sergio.html" style="">Paulo Sergio</a>)</div><div class="sep3"></div><div style="float:left;padding-right:2px;">Bayern: </div><a class="link_noicon" href="/news/fussball/bundesliga/vereine/1-bundesliga/2000-01/bayern-muenchen-14/396/spieler_stefan-effenberg.html" style="float:left;">Effenberg</a><div style="float:left;padding-left:2px;">(55., grobes Foulspiel, <a class="link_noicon" href="/news/fussball/bundesliga/vereine/1-bundesliga/2018-19/borussia-dortmund-17/22046/spieler_otto_addo.html" style="">Evanilson</a>)</div><br style="clear:both;"/>
</div>
</td>
</tr>]'
背景:这应该从足球网站捕获被暂停的球员。我想匹配那些实际被罚下的球员(更具体地说,他们的 id 包含在 URL 中),但字符串还包含犯规的球员。
这给了我包含在所有四个玩家 ID 的列表mystring
:
import re
re.findall('href=".+?/(\d+?)/spieler_.+?.html"', mystring)
['24285', '223', '396', '22046']
这作为球员太宽容了223
,22046
没有被罚下。这两种情况可以通过使用右括号来区分。但是,我没有指定正确的regex
. 据我了解,这应该可行,但会产生一个空列表:
re.findall('href=".+?/(\d+?)/spieler_.+?.html"\s>.+?</a><div', mystring)
期望的结果:['24285', '396']
。我觉得我在.html
错误地对待空白之后。我如何需要指定正则表达式?
解决方案
我不确定您为什么使用正则表达式来查找结构化信息中的数字。无论如何,你可以使用这个正则表达式:
import re
re.findall('<\/div><a.*?href=\".+?\/(\d+?)\/spieler_.+?.html\"', mystring)
输出:
['24285', '396']
推荐阅读
- python - 我已经尝试了几乎所有东西,将 Python 数据转换到一个范围内,但不断得到 *Int object not callable*
- java - 更改 Bi-Publisher RTF 中的负数格式
- delphi - C到Delphi很短
- python - 使用 crontab 执行 python 脚本时找不到 Python 模块
- powershell - 在脚本中检查系统睡眠状态
- javascript - 有没有办法在不同的 IP 下运行 Nightwatch 自动化
- heroku - 如何在 Heroku 上的 Rails 6 应用程序上设置 RAILS_PRODUCTION_KEY 配置变量
- swiftui - 如何调整选取器中的行大小?
- javascript - 仅当具有特定 id 的元素可用时才执行函数
- java - 如何从我的 Mac 卸载其他/较旧的 Java 版本?