正規表現のマッチグループを '#'文字で置き換えたいと思います。python - 可変正規表現グループのみ置換
可変数のグループを含むRegexの可変数があります。
正規表現グループの値を置き換える必要があります。
#! /usr/bin/python
import re
data = """Line1 '4658'
Line2 data 'AAA'\tBBB\t55555
Roach""".splitlines()
# a variable number of Regex's containing a variable number of groups
needles = [ r"Line1 '(\d+)'",
r"'(AAA)'\t\S+\t(\S+)",
r"(Roach)" ]
pattern = re.compile('|'.join(needles))
for line in data:
match = pattern.search(line)
if (match):
print(re.sub(match.string[match.start():match.end()], '#' * len(match.string), line))
# current output
"""
############
Line2 data ##########################
#####
"""
# desired output
"""
Line1 '####'
Line2 data '###' BBB #####
#####
"""