Как записать в файл совпадение регулярного выражения - PullRequest
1 голос
/ 08 июня 2019

Я разбираю файл журнала и работаю над ним, просто используя печать.У меня это работает, но я не могу понять, как записать его в файл вместо печати на экран.

Я попытался открыть выходной файл o для записи, а затем следующее регулярное выражение

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

Выдает ошибку, что это должен быть строковый объект для аргумента .write.Я также пытался o.write(matched(1),line), но это только заставляет меня http.Я новичок, так что извините, если это простой вопрос.Но я не знаю достаточно об этом, чтобы знать, с чего начать.

1 Ответ

0 голосов
/ 08 июня 2019

Вот документация для объектов Match , где одна из функций упоминает, что вы хотите:

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/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...