为什么是re.sub公司没有用空字符串替换字符串

2024-09-22 20:21:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我不懂Pythonre.sub公司行为。我想把整个多行字符串替换为空。我要回一根空绳子:

#!/usr/bin/python

import re


if __name__ == "__main__":
    data = """hello
world 
good 
day
"""

    textarea = re.sub( '.*', '', data)
    print "processed '%s'" % textarea

    textarea = re.sub( '.*', '', data, flags=re.MULTILINE)
    print "processed '%s'" % textarea

以上代码,至少在我的机器上没有输出以下内容:

^{pr2}$

这两种情况都适用,多行/非多行。相反,单引号分散在多行。为什么会这样?在

我真正想做的是从多行字符串中删除空行(只包含零个或多个空格的行),我相信上面的例子就是问题所在。在

谢谢。在

回答:

正如其他人指出的那样。多行让我很困惑。为了回答最初的问题,不是我想要的那样,圆点与换行符不匹配,因此所有的东西都被替换成一个空字符串,除了原始字符串中的新行被单独保留。在

通过添加雷多尔上例的标志给出了空字符串的预期行为。在


Tags: 字符串nameimportredataifbinmain