Многострочная замена на регулярное выражение Python

Для .NET 3.5 и ниже вы можете использовать:

string.Format ("{0:00}:{1:00}:{2:00}", 
               (int)myTimeSpan.TotalHours, 
                    myTimeSpan.Minutes, 
                    myTimeSpan.Seconds);

Код, взятый из ответа Jon Skeet на байтах

Для .NET 4.0 и выше см. DoctaJonez answer .

1
задан Imtiyaz Ali 18 January 2019 в 16:31
поделиться

2 ответа

Если ваш текст занимает несколько строк, например,

some text.......
partition by range (STRT_DTTM)
some more text......
);

, тогда вам придется использовать модификатор (?s), чтобы . соответствовал новой строке.

Демо

Примеры кодов Python,

import re

s = '''some text.......
partition by range (STRT_DTTM)
some more text......
);'''

mods = re.sub(r'(?s)partition by range(.*?)\);','THIS IS TEST',s)
print(mods)

Prints,

some text.......
THIS IS TEST
0
ответ дан Pushpesh Kumar Rajwanshi 18 January 2019 в 16:31
поделиться

Вы должны использовать \ для всех зарезервированных символов регулярного выражения -> [\^$.|?*+(){}. Окончательный код будет:

import re
text = "partition by range(CANE) uno"
s = re.compile("^partition by range\(.*\)",re.MULTILINE)
replace = re.sub(s, 'THIS IS TEST', text)
print(replace)

Результат:

THIS IS TEST uno
0
ответ дан Jean-François Fabre 18 January 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: