Как добавить новую строку каждый раз, когда в строке обнаруживается шаблон списка регулярных выражений?
Я использую python 3.6.
Я получилследующий ввод:
12.13.14 Здесь предполагается начать новую строку.
12.13.15 Здесь предполагается начать новую строку.
Здесьнекоторый текст.Это написано в одной строке.12,13.Вот еще немного текста.2.12.14.Вот еще больше текста.
Я хочу получить следующий вывод:
12.13.14
Здесь предполагается начать новую строку.
12.13.15
Здесь предполагается начать новую строку.
Вот текст.Это написано в одной строке.
12.13.
Вот еще немного текста.
2.12.14.
Вот еще больше текста.
Моя первая попытка возвращает в качестве выходных данных то же, что и ввод:
in_file2 = 'work1-T1.txt'
out_file2 = 'work2-T1.txt'
start_rx = re.compile('|'.join(
['\d\d\.\d\d\.', '\d\.\d\d\.\d\d','\d\d\.\d\d\.\d\d']))
with open(in_file2,'r', encoding='utf-8') as fin2, open(out_file2, 'w', encoding='utf-8') as fout2:
text_list = fin2.read().split()
fin2.seek(0)
for string in fin2:
if re.match(start_rx, string):
string = str.replace(start_rx, '\n\n' + start_rx + '\n')
fout2.write(string)
Myвторая попытка возвращает ошибку 'Ошибка типа: неподдерживаемые типы операндов для +:' _sre.SRE_Pattern 'и' str ''
in_file2 = 'work1-T1.txt'
out_file2 = 'work2-T1.txt'
start_rx = re.compile('|'.join(
['\d\d\.\d\d\.', '\d\.\d\d\.\d\d','\d\d\.\d\d\.\d\d']))
with open(in_file2,"r") as fin2, open(out_file2, 'w') as fout3:
for line in fin2:
start = False
if re.match(start_rx, line):
start = True
if start == False:
print ('do something')
if start == True:
line = '\n' + line ## leerzeichen vor Pos Nr
line = line.replace(start_rx, start_rx + '\n')
fout3.write(line)