我有这段代码,但我真的不知道为什么它不起作用。我想用 Nothing 替换 SOMETHING 并删除其中包含空格和 50 的行。
预期输出:
NOTHING
1 1
2345234
abcdefg
foobar
wrwerdfdsf
import re
s = """SOMETHING
1 1
2345234
abcdefg
foobar
50
wrwerdfdsf"""
repl = {'SOMETHING': 'NOTHING', ' 50\n': ''}
n = re.sub(
r'^(SOMETHING)\n.*\n.*\n.*\n.*\n.*\n.*\n.*\n( 50\n)',
lambda x: repl[x.group()] if x.group() in repl else x.group(),
s,
flags=re.M
)
它不能替代任何东西。也许我需要在
x.group()
的括号里写点什么?
这是更新版本:
import re
s = """SOMETHING
1 1
2345234
abcdefg
foobar
50
wrwerdfdsf"""
repl = {'SOMETHING': 'NOTHING', '50': ''}
n = re.sub(r'\s{2}', '',re.sub(r'^.*$', lambda x: repl.get(x.group().strip(), x.group()), s, flags=re.M))
print(n)
首先需要替换单词,然后删除其中的空行