当正则表达式将数字读取为字符串类型时,如何找到模式?
How can I find pattern when Regex reads digits as string type?
我正在尝试编写 pdf reader 脚本。当我在 RE 中编写模式时,它 return 什么都没有。
输入:
import requests
import pdfplumber
import pandas as pd
import re
with pdfplumber.open("file.pdf") as pdf:
page = pdf.pages[0]
text = page.extract_text()
decl = re.compile(r'\d{8}AN\d{6}')
for line in text.split('\n'):
if decl.search(line):
print(line)
从 pdf 文件中搜索的文本行是 'CHEMISCHE FABRIK BUDENHEIM KG PO BOX 61245366AN206589'
但它没有return所需的输出:61245366AN206589
我发现它将整行读取为字符串。我该如何解决这个问题?
for char in text.split('\n')[3]:
print(char)
print(type(char))
。
.
.
乙
欧
X
6个
1个
2个
4个
5个
3个
6个
6个
一个
否
2个
0
6个
5个
8个
9
search
returns 一个匹配对象,所以如果有匹配,你需要从中提取结果。
这是在互动环节:
>>> decl = re.compile(r"\d{8}AN\d{6}")
>>> m = decl.search("CHEMISCHE FABRIK BUDENHEIM KG PO BOX 61245366AN206589")
>>> m
<re.Match object; span=(37, 53), match='61245366AN206589'>
>>> m.group(0)
'61245366AN206589'
>>> m.span()
(37, 53)
span
是匹配项在搜索文本中的位置,使用切片表示法值。
我正在尝试编写 pdf reader 脚本。当我在 RE 中编写模式时,它 return 什么都没有。
输入:
import requests
import pdfplumber
import pandas as pd
import re
with pdfplumber.open("file.pdf") as pdf:
page = pdf.pages[0]
text = page.extract_text()
decl = re.compile(r'\d{8}AN\d{6}')
for line in text.split('\n'):
if decl.search(line):
print(line)
从 pdf 文件中搜索的文本行是 'CHEMISCHE FABRIK BUDENHEIM KG PO BOX 61245366AN206589'
但它没有return所需的输出:61245366AN206589
我发现它将整行读取为字符串。我该如何解决这个问题?
for char in text.split('\n')[3]:
print(char)
print(type(char))
。
.
.
search
returns 一个匹配对象,所以如果有匹配,你需要从中提取结果。
这是在互动环节:
>>> decl = re.compile(r"\d{8}AN\d{6}")
>>> m = decl.search("CHEMISCHE FABRIK BUDENHEIM KG PO BOX 61245366AN206589")
>>> m
<re.Match object; span=(37, 53), match='61245366AN206589'>
>>> m.group(0)
'61245366AN206589'
>>> m.span()
(37, 53)
span
是匹配项在搜索文本中的位置,使用切片表示法值。