为什么我在 RegEx 中找不到这个字符串?
Why can't I find this string in RegEx?
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)
输出:'excl. btw € 25,00'
当我在搜索中粘贴文字输出时,它怎么会找到 € 25,00 这个数字,而当我输入数据变量时却找不到?
请帮帮我!
您没有提供 data
对象的内容,但错误消息只是说找不到正则表达式。因此,您可能正在对不包含该特定字符串的数据调用搜索。
$ KVK_re = re.compile(r'(excl. btw .+)')
$ KVK_re.search('test').group(0)
AttributeError: 'NoneType' object has no attribute 'group'
在大多数情况下,当在模式中使用文字 space 并且没有匹配项时,原因是不可见字符,或 non-breaking spaces.
当你有 non-breaking spaces,\xA0
,你可以简单地用 \s
替换文字 spaces 来匹配任何白色 space 或 [ \xA0]
以匹配 space 中的任何一个。
在这种情况下,似乎可能存在 space 和一些不可见字符的组合,因此,您可以使用 \W
来匹配任何 non-word 个字符,而不是一个文字 space:
r'excl\.\W+btw\W.+'
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)
输出:'excl. btw € 25,00'
当我在搜索中粘贴文字输出时,它怎么会找到 € 25,00 这个数字,而当我输入数据变量时却找不到?
请帮帮我!
您没有提供 data
对象的内容,但错误消息只是说找不到正则表达式。因此,您可能正在对不包含该特定字符串的数据调用搜索。
$ KVK_re = re.compile(r'(excl. btw .+)')
$ KVK_re.search('test').group(0)
AttributeError: 'NoneType' object has no attribute 'group'
在大多数情况下,当在模式中使用文字 space 并且没有匹配项时,原因是不可见字符,或 non-breaking spaces.
当你有 non-breaking spaces,\xA0
,你可以简单地用 \s
替换文字 spaces 来匹配任何白色 space 或 [ \xA0]
以匹配 space 中的任何一个。
在这种情况下,似乎可能存在 space 和一些不可见字符的组合,因此,您可以使用 \W
来匹配任何 non-word 个字符,而不是一个文字 space:
r'excl\.\W+btw\W.+'