为什么我在正则表达式中找不到这个字符串?

lines = []

total_check = 0


with pdfplumber.open(file) as pdf:

    pages = pdf.pages

    for page in pdf.pages:

        text = page.extract_text()

        for line in text.split('\n'):

            print(line)

输出数据:


Totaalbedrag excl. btw € 25,00

当我尝试从数据中检索增值税时:


KVK_re = re.compile(r'(excl. btw .+)')

KVK_re.search(data).group(0)

输出:AttributeError:“NoneType”对象没有属性“group”


KVK_re = re.compile(r'(excl. btw .+)')

KVK_re.search(r'excl. btw € 25,00').group(0)

输出:'排除。顺便说一句 € 25,00'


当我将文字输出粘贴到搜索中时,它怎么可能找到数字 € 25,00 而当我输入数据变量时却找不到?


请帮我!


翻阅古今
浏览 94回答 2
2回答

米脂

在大多数情况下,当模式中使用文字空格并且没有匹配时,原因是不可见字符或不间断空格。当您有不间断空格 时,\xA0您可以简单地将文字空格替换为\s来匹配任何空白,或[ \xA0]匹配任一空格。在这种情况下,似乎可能存在空格和一些不可见字符的组合,因此,您可以使用\W匹配任何非单词字符而不是文字空格:r'excl\.\W+btw\W.+'

杨魅力

您没有提供对象的内容data是什么,但错误消息只是说找不到正则表达式。因此,您可能正在对不包含该特定字符串的数据调用搜索。$ KVK_re = re.compile(r'(excl. btw .+)')$ KVK_re.search('test').group(0)AttributeError: 'NoneType' object has no attribute 'group'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python