我遇到了一个小问题。下面的代码有效,但是当我将 /test1 和 /test2 放入文件并更改 '/test1 (.*?) /test2'
时,它在文件中看不到它,除了运行。
import re
with open ('test.txt') as f:
fin = f.read()
try:
print(re.search('test1 (.*?) test2', fin) .group(1))
except:
print('Didnt find test')
我的目标是从文本文件列表中提取并推送到具有如下文本的 CSV 列中,我将在其中提取 /J6 到 /K6 作为值范围。 /J6 到 /K6 有多个不同的行,每个值都被放入 CSV 中的单独列中。
/J60000,0000,0819,0016,0356,-13,0363/K60013 ,0012,0013,0875,-0021,00465,0120/L60089,0002,
我只想了解检测 / 是否存在语法问题。我正在尝试在一个值和另一个值之间提取值。谢谢
答案 0 :(得分:0)
您可以使用 re.split
函数。
这样的东西...
In [84]: import re
In [85]: inp = "/J60000,0000,0819,0016,0356,-13,0363/K60013 ,0012,0013,0875,-0021,00465,0120/L60089,0002,"
In [86]: re.split("/[J,K,L]\d", inp)
Out[86]:
['',
'0000,0000,0819,0016,0356,-13,0363',
'0013 ,0012,0013,0875,-0021,00465,0120',
'0089,0002,']
免责声明:我根本不擅长正则表达式。我用这个链接作为参考。 https://www.dataquest.io/blog/regex-cheatsheet/