gpt4 book ai didi

Python 正则表达式问题

转载 作者:太空宇宙 更新时间:2023-11-03 15:28:37 25 4
gpt4 key购买 nike

我有一个正则表达式,可以在某些文本后获取一些数字

num_output = re.compile(r'only_numbers=([0-9]*)')
print(get_numbers.findall(f1))

我得到的输出是正确的。我正在读取的字符串类似于

only_numbers = 123456789

我捕获了123456789,但是当我输出到屏幕时,我得到以下内容:

['123456789']

有没有办法从我的输出中删除“['”和“']”。

with open(filetoread) as f1:
f2 = f1.read()
num_output = re.compile(r'only_numbers=([0-9]*)')

感谢您的指导。

最佳答案

re.findall 通过字符串不断重新应用 re.search 并返回找到的匹配项列表。要获得一个,请自行搜索。请注意没有任何内容匹配的情况。

num_output = re.compile(r'only_numbers=([0-9]*)', flags=re.MULTILINE)
try:
num = num_output.search(f1).group(1)
except AttributeError:
num = 'not found'
print(num)

在您的文件示例中,如果文件很大,您可能会受益于逐行检查它,这样您就不会一次将所有文件放入内存中。我们可以使用 itertools.dropwhile 删除行,直到正则表达式匹配并使用返回的第一个匹配对象。

import re
import itertools

num_output = re.compile(r'only_numbers=(\d*)')

with open('test.txt') as f1:
try:
num = next(itertools.dropwhile(lambda m: not m,
map(num_output.search, f1))).group(1)
except StopIteration:
num = 'not found'

print(num)

关于Python 正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com