2024-07-01 06:49:57 发布
网友
我有两段代码,我想从中提取名字。在
代码:
;"><strong>DeanSkyShadow</strong> ;"><strong><em>Xavier</em></strong>
regex应该提取名称DeanSkyShadow和Xavier。我当前的正则表达式:
如果代码中没有em标记,则正确获取名称;如果有em标记,则它还会获取开始的em标记,如下所示:<em>Xavier。我该怎么解决呢?在
<em>Xavier
匹配任何而不是的<字符;您也不能使用可变宽度的look-behind,因此您的版本根本不起作用。请改用非捕获模式
<
(?:;"><strong>(?:<em>)?)([^<]+?)(?=(?:</em>)?</strong>)
演示:
更好的解决方案是使用HTML解析器。我可以推荐BeautifulSoup:
from bs4 import BeautifulSoup soup = BeautifulSoup(htmltext) for strong in soup.find_all('strong'): print strong.text
匹配任何而不是的
<
字符;您也不能使用可变宽度的look-behind,因此您的版本根本不起作用。请改用非捕获模式演示:
^{pr2}$更好的解决方案是使用HTML解析器。我可以推荐BeautifulSoup:
相关问题 更多 >
编程相关推荐