python-3.x 如何删除字符串中的回车符,就像打印字符串一样?

ego6inou  于 2023-02-14  发布在  Python
关注(0)|答案(3)|浏览(163)

我想从字符串中删除所有\r,就像它是通过print()打印的一样,并将结果存储在另一个变量中。
示例:

>>> s = "hello\rworld"
>>> print(s)
world

在本例中,如何将s "打印"到一个新变量中,然后该变量包含字符串"world"
背景:我正在使用子进程模块来捕获包含大量\r字符的stdout。为了有效地分析字符串,我希望只得到结果输出。

e37o9pze

e37o9pze1#

使用正则表达式:

import re

s = "hello\rworld"
out = re.sub(r'([^\r]+)\r([^\r\n]+)',
             lambda m: m.group(2)+m.group(1)[len(m.group(2)):],
             s)

输出:'world'
更复杂的示例:

import re

s = "hello\r..\nworld"

out = re.sub(r'([^\r]+)\r([^\r\n]+)',
             lambda m: m.group(2)+m.group(1)[len(m.group(2)):],
             s)

输出:

..llo
world
3pmvbmvn

3pmvbmvn2#

我想得到相同结果的一个非常简单的方法是在每次出现回车符(\r)时拆分字符串,然后只返回最后一个结果。

>>> s = "hello\rworld"
>>> res = s.split("\r")[-1]
>>> res
'world'
tvz2xvvm

tvz2xvvm3#

你可以使用正则表达式:

import re
s = "Example\n of\r text \r\nwith \\r!"
s2 = re.sub("\r\n", "\n", s)
s2 = re.sub("[^\n]*\r", "", s2)
print(s)
print(s2)

相关问题