从HTML中提取名称的正则表达式

2024-07-01 06:49:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两段代码,我想从中提取名字。在

代码:

 ;"><strong>DeanSkyShadow</strong>
 ;"><strong><em>Xavier</em></strong>

regex应该提取名称DeanSkyShadowXavier。我当前的正则表达式:

^{pr2}$

如果代码中没有em标记,则正确获取名称;如果有em标记,则它还会获取开始的em标记,如下所示:<em>Xavier。我该怎么解决呢?在


Tags: 代码标记名称名字regexstrongemxavier
1条回答
网友
1楼 · 发布于 2024-07-01 06:49:57

匹配任何而不是<字符;您也不能使用可变宽度的look-behind,因此您的版本根本不起作用。请改用非捕获模式

(?:;"><strong>(?:<em>)?)([^<]+?)(?=(?:</em>)?</strong>)

演示:

^{pr2}$

更好的解决方案是使用HTML解析器。我可以推荐BeautifulSoup

from bs4 import BeautifulSoup

soup = BeautifulSoup(htmltext)

for strong in soup.find_all('strong'):
    print strong.text

相关问题 更多 >

    热门问题