![](/img/trans.png)
[英]Using Tika in Python and Regular Expression To Extract Text From PDF
[英]Extract specific words from text in python using regular expression
例如,我有以下文本:
[ABC]something
foo 25
bar 20
[DEF]something
foo 50
.....和其他类似的文字
我想从括号中提取三个单词 foo 和 bar 以及数字,这样我就可以得到 re.findall 的结果,如下所示[('ABC', 'foo 25', bar 20'), ('DEF', 'foo 50')]
我尝试了以下模式,但在列表中返回了许多空字符串
\[(\w+)\]|\n\s+(\w+\s\d+)
您可以使用
import re
data = """
[ABC]something
foo 25
bar 20
[DEF]something
foo 50
"""
rx_outer = re.compile(r'''
^
\[(?P<section>[^][]+)\]
(?P<content>(?:.+[\r\n]?)+)
''', re.M | re.X)
rx_inner = re.compile(r'\w+\s+\d+')
result = []
for outer in rx_outer.finditer(data):
section = outer.group('section')
values = tuple([value.group(0) for value in rx_inner.finditer(outer.group('content'))])
result.append((section,) + values)
print(result)
或者 - 作为列表理解:
result = [(section,) + tuple([value.group(0) for value in rx_inner.finditer(outer.group('content'))])
for outer in rx_outer.finditer(data)
for section in [outer.group('section')]]
print(result)
机器人将产生
[('ABC', 'foo 25', 'bar 20'), ('DEF', 'foo 50')]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.