我只想提取整个部分 - "value":["10|8.0|1665|82|apple|#||0","8|1132|188.60|banana|#||0 "] 从一个文本文件中的所有行,然后写入另一个文本文件。这部分每一行都有不同的值。
我已经编写了这个正则表达式模式,但无法在另一个文本文件中获取这些完整部分。
with open("result.txt", "w+") as result_file:
with open("log.txt", "r") as log-file:
for lines in log-file:
all_values= re.findall(r'("value"+:"[\w\.#|-]+")', lines)
for i in all_values:
result_file.write(i)
答案 0 :(得分:1)
在您的模式中,您可以省略捕获组的外括号以获得匹配项。
这部分 "+
匹配 1 次或多次双引号,这似乎不是必需的。
您没有得到整个匹配,因为字符串中的字符比字符类 [\w\.#|-]+
中列出的字符多
作为更广泛的匹配,您可以使用
"value":\[".*?"]
"value":
字面匹配\["
匹配 ["
.*?
尽可能匹配任何字符"]
匹配 "]