首页 > 解决方案 > 如何使用 python 和正则表达式合并两个文本文件

问题描述

这就是我得到的:(在 blhsing 回答后编辑。)

import re
File1 = open('text.txt', 'r')
regex = re.compile(r'\b(?:[12]?\d{1,4}|30{4})#[^#]+#')
string = File1.read()
itemdesc = regex.findall(string)
for word in itemdesc:
    print (word)

通过使用: \b(?:[12]?\d{1,4}|30{4})#[^#]+# 我可以找到:

5173#bunch of text here
of, bunch here, text
text here, bunch of
#

找到此文本后,我想将其替换到另一个存在类似文件的文件中。
在当前阶段,我仍然需要实现类似的东西:

\b(?:number)#[^#]+#

为了找到一个文本移动并将其替换到另一个文件中,其中一个具有相同编号的文件,也在执行它之前检查是否有多次出现。

这样做之后,我将遇到另一个问题,即保存多次出现并将其存储在另一个文本中,以便手动完成其余的工作。

希望你们能提供帮助,感谢任何帮助,它不需要成为解决方案。:)

标签: pythonregextextmerge

解决方案


这里的问题是,当您实际上想要在多行上匹配正则表达式时,您正在读取文件并逐行匹配正则表达式。因此,在将整个文件与正则表达式匹配之前,您应该将整个文件读入一个字符串:

import re
File1 = open('text.txt', 'r')
regex = re.compile(r'\b(?:[12]?\d{1,4}|30{4})#[^#]+#')
string = File1.read()
itemdesc = regex.findall(string)
for word in itemdesc:
    print (word)

推荐阅读