如何将正则表达式匹配写入文件

时间:2019-06-07 23:52:40

标签: regex python-3.x

我一直在解析一个日志文件并仅使用print对其进行处理。我已经工作了,但是我不知道如何将其写入文件而不是将其打印到屏幕上。

我尝试打开输出文件o进行写入,然后打开以下正则表达式

matched = re.search(r"(http|https)://(.*?)./+", line)
o.write(matched)

它引发错误,它必须是.write参数的字符串对象。我也尝试过o.write(matched(1),line),但这只能让我获得http。我是新手,如果这只是一个简单的问题,我们深感抱歉。但是我对此一无所知,不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

这里是documentation for Match objects,其中一个功能提及您想要的内容:

Match.group([group1, ...])
     

返回匹配项的一个或多个子组。如果有单个参数,则结果为单个字符串;如果有多个参数,则结果是一个元组,每个参数有一个项目。如果没有参数,则group1默认为零(将返回整个匹配项)。 [...]

这是一个可运行的示例:

import re
line = "Some text with https://www.example.com/ in it"
matched = re.search(r"(http|https)://(.*?)./+", line)
with open("file.txt", "w") as o:
  o.write(matched.group())

结果为:

$ python3 test.py; cat file.txt; echo
https://www.example.com/
$ python2 test.py; cat file.txt; echo
https://www.example.com/