Regex 正则表达式未正确返回的自定义HTMLPasser

Regex 正则表达式未正确返回的自定义HTMLPasser,regex,python-2.7,html-parsing,Regex,Python 2.7,Html Parsing,我正在开发一个程序,它根据不同的正则表达式从HTML文件中提取一些信息。我遇到了以下代码的错误 我的HTMLParser子类: class MyHtmlParser(HTMLParser): def __init__(self): self.reset() self.title = [] def handle_data(self, d): Result = re.search(r'ANMELDELSE .*(?=</b>

我正在开发一个程序,它根据不同的正则表达式从HTML文件中提取一些信息。我遇到了以下代码的错误

我的HTMLParser子类:

class MyHtmlParser(HTMLParser):
    def __init__(self):
        self.reset()
        self.title = []
    def handle_data(self, d):
        Result = re.search(r'ANMELDELSE .*(?=</b>)',d)
        if Result:
            self.title.append(Result.group(0))
    def return_data(self):
        return self.title
现在HTML文件非常凌乱,而且是挪威语的,但是这里有一个子集应该会触发这种情况

<p style="margin: 0cm 0cm 0pt;"><span style="text-decoration: underline;">Sak 428/18-123, 03.09.2018 </span></p>
<p style="margin: 0cm 0cm 0pt;"><b>&nbsp;</b></p>
<p style="margin: 0cm 0cm 0pt;"><b>ANMELDELSE FOR TRAKASSERING</b></p>
Sak 428/18-123,2018年9月3日

用于TRAKASSERING的ANMELDELSE

这应该选择“ANMELDELSE FOR TRAKASSERING”,它在和中都有,但是在执行代码时,我得到的只是一个空列表。这段代码已经在以前的正则表达式调用中使用过,所以我有点不知所措


希望有人能帮忙

如果您的文本仅在某些文本节点中具有
ANMELDELSE
,您可以使用

r'ANMELDELSE[^<>]*'
r'ANMELDELSE[^]*'
原始模式包含一个文本规则空格(
\x20
)。在文本编辑器/查看器中,通常使用空格来确保下一个单词保持在同一行,而不是空格


要匹配它,可以使用
\s
并将
re.U
修饰符(在使用Python 2.7时是必需的)传递给
re.search
方法,但由于要匹配到标记的末尾,只需使用一个否定字符类
[^]*
,除了

之外的任何0+字符如果我在这里使用正则表达式,我会使用类似
r'ANMELDELSE[^]*
的东西。你确定那里的空间没有不间断的空间吗?当你调用
handle_data(self,d)
时,什么样的对象以
d
的形式传入?这确实有助于@WiktorStribiżew!你介意澄清一下你所说的不间断空间是什么意思吗?当我在两个网站上都试过的时候,我很困惑,这两个网站给了我正确的答案。这是一个,非常类似于一个普通的空间。可能就是这样,它现在似乎可以工作了!谢谢@WiktorStribiżew!
r'ANMELDELSE[^<>]*'