问题描述
我有一个脚本在 python 中循环多个搜索/替换正则表达式,其中一个操作是删除尾随空格我试过了:
I have a script that loops over several search/replace regex in python, one of those operations is remove trailing spacesI've tried:
re.sub(r"""\s+$""", '', str)
re.sub(r""" +$""", r"""""", str)
和
re.sub(r""" +$""", r"""""", str, re.M)
我找到了几个简单推荐使用 strip
的答案,我的问题是我想将其集成到正则表达式替换机制中.
I found several answers that simply recommended using strip
my problem is that I want to integrate this in the regex replace mechanism.
推荐答案
函数是 sub
并将目标字符串作为参数(并返回修改后的副本):
The function is sub
and takes the target string as an argument (and returns a modified copy):
str = re.sub(r'\s+$', '', str)
或者如果您想从单个字符串中的多行中删除尾随空格,请使用以下方法之一:
or if you want to remove trailing spaces from multiple lines in a single string, use one of these:
str = re.sub(r'\s+$', '', str, 0, re.M)
str = re.sub(r'\s+$', '', str, flags=re.M)
0
是 count
参数(其中 0
表示没有限制)然后 re.M
使$
匹配行尾.如果您没有明确指定 flags
,则需要该附加参数,因为 flags
实际上是第五个.
The 0
is the count
parameter (where 0
means no limit) and then re.M
makes $
match at line endings. If you don't specify flags
explicitly, you need that additional parameter, because flags
is actually the fifth one.
请注意,多行字符串只需要三重引号.重要的是模式的 r
.
Note that you only need triple quotes for multiline strings. What's important is the r
for the pattern.
或者,rstrip
用于删除尾随空格:
Alternatively, rstrip
is used to remove trailing whitespace:
str = str.rstrip()
这篇关于使用python删除尾随空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!