在python中将所需数据从一个文件复制到另一个文件

时间:2013-05-16 16:56:03

标签: python regex

我是Python的新手,我坚持认为我有一个文件a.txt,其中包含10-15行html代码和文本。我想将与我的正则表达式匹配的数据从一个a.txt复制到b.txt。假设我有一行Hello "World" How "are" you,我想复制双引号之间的数据,即Worldare,以便复制到新文件。

这就是我所做的。

if x in line:
  p = re.compile("\"*\"")
  q = p.findall(line)
  print q

但这只是显示“”(双引号)作为输出。我认为我的正则表达式中存在错误。 任何帮助是极大的赞赏。 感谢。

2 个答案:

答案 0 :(得分:2)

您的正则表达式(在没有所有字符串转义的情况下转换为"*")匹配零个或多个引号,后跟引号。

你想要

p = re.compile(r'"([^"]*)"')

<强>解释

"     # Match a quote
(     # Match and capture the following:
[^"]* # 0 or more characters except quotes
)     # End of capturing group
"     # Match a quote

这假定您永远不必处理转义报价,例如:克。

He said: "The board is 2\" by 4\" in size"

答案 1 :(得分:1)

捕获您感兴趣的组(即引号之间),从每一行中提取匹配项,然后将每行写入一个新文件,例如:

import re

with open('input') as fin, open('output', 'w') as fout:
    for line in fin:
        matches = re.findall('"(.*?)"', line)
        fout.writelines(match + '\n' for match in matches)