【发布时间】:2017-08-19 16:24:16
【问题描述】:
我想使用 re.sub 从嵌入在较大字符串中的单引号字符串中删除前导和尾随空格。如果我有,比如说,
textin = " foo ' bar nox ': glop ,' frox ' "
我要生产
desired = " foo 'bar nox': glop ,'frox' "
删除前导空格相对简单。
>>> lstripped = re.sub(r"'\s*([^']*')", r"'\1", textin)
>>> lstripped
" foo 'bar nox ': glop ,'frox ' "
问题是删除尾随空格。例如,我尝试过,
>>> rstripped = re.sub(r"('[^']*)(\s*')", r"\1'", lstripped)
>>> rstripped
" foo 'bar nox ': glop ,'frox ' "
但这失败了,因为[^']* 匹配尾随空格。
我考虑过使用回溯模式,但 Re doc 说它们只能包含固定长度的模式。
我确定这是以前解决的问题,但我很难过。
谢谢!
编辑:该解决方案需要处理包含单个非空白字符和空字符串的字符串,即' p ' --> 'p' 和' ' --> ''。
【问题讨论】: