我有一个脚本可以遍历python中的几个搜索/替换正则表达式,其中一个操作是删除我尝试过的尾随空格:
re.sub(r"""\s+$""", '', str)
re.sub(r""" +$""", r"""""", str)
和
re.sub(r""" +$""", r"""""", str, re.M)
我发现了几个简单推荐使用strip
我的问题的答案是我想将它集成到正则表达式替换机制中。
我有一个脚本可以遍历python中的几个搜索/替换正则表达式,其中一个操作是删除我尝试过的尾随空格:
re.sub(r"""\s+$""", '', str)
re.sub(r""" +$""", r"""""", str)
和
re.sub(r""" +$""", r"""""", str, re.M)
我发现了几个简单推荐使用strip
我的问题的答案是我想将它集成到正则表达式替换机制中。
该函数是sub
并将目标字符串作为参数(并返回修改后的副本):
str = re.sub(r'\s+$', '', str)
或者,如果您想从单个字符串的多行中删除尾随空格,请使用以下之一:
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
请注意,多行字符串只需要三引号。重要的是r
模式。
或者,rstrip
用于删除尾随空格:
str = str.rstrip()
这使用正则表达式删除尾随空格:
import os
import re
PATH = '/path/to/source'
re_strip = re.compile(r'[ \t]+(\n|\Z)')
for path, dirs, files in os.walk(PATH):
for f in files:
file_name, file_extension = os.path.splitext(f)
if file_extension == '.py':
path_name = os.path.join(path, f)
with open(path_name, 'r') as fh:
data = fh.read()
data = re_strip.sub(r'\1', data)
with open(path_name, 'w') as fh:
fh.write(data)