>>> s = '''
// DO NOT REPLACE ME //
Anything might be here. Numbers letters, symbols, and other strings.
// DO NOT REPLACE ME EITHER //
'''
>>> print(s)
// DO NOT REPLACE ME //
Anything might be here. Numbers letters, symbols, and other strings.
// DO NOT REPLACE ME EITHER //
>>> import re
>>> start = '// DO NOT REPLACE ME //'
>>> end = '// DO NOT REPLACE ME EITHER //'
>>> replacement = 'stuff'
>>> match = re.match(r'(.+%s\s*).+?(\s*%s.+)' % (start, end), s, re.DOTALL)
>>> match.groups()
('\n // DO NOT REPLACE ME //\n ', '\n // DO NOT REPLACE ME EITHER //\n ')
>>> new = match.group(1) + replacement + match.group(2)
>>> print(new)
// DO NOT REPLACE ME //
stuff
// DO NOT REPLACE ME EITHER //
可能會引起問題,如果start
或end
包含的特殊字符。在這種情況下,他們沒有。
這是不行的,因爲它不是基於行 - 。 OP想要替換兩條線*之間的*。 – ekhumoro
@ekhumoro這這種情況下,我想你可以做'new_string = 「」。加入([S [:開始], '\ n',更換, '\ n',S [結束:])' –