Python re.sub不会替换换行符

问题描述 投票:0回答:2

我有一些这样的文字:

<Row 1 Having A Text>
<Row 2 Having B Text>
<Row 3 Having C Text>

我正在尝试完全移除并向上移动。

我一直在尝试使用此:

for line in fileinput.input(new_name, inplace=True): 
print (re.sub(r'<Row 2.*[\r\n]*', '', line.strip()))

但是,这只会导致以下结果:

<Row 1 Having A Text>

<Row 3 Having C Text>

第3行不向上移动。我在这里想念什么?

python regex replace newline re
2个回答
0
投票

您的问题是由print('')输出空白行引起的。不用打印每行,而只打印不以<Row 2

开头的行
for line in fileinput.input(new_name, inplace=True): 
    if not line.strip().startswith('<Row 2'):
        print(line)

0
投票

[print()即使内容为空也将输出LF,因此您将'Row 2'替换为空字符串,但由于仍使用print,因此在输出中会出现空行。


-1
投票

尝试匹配CR?LF,它将涵盖所有类型的行尾:

© www.soinside.com 2019 - 2024. All rights reserved.