You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python正则表达式移除连字符前后多余空格的方法

如何清除连字符前后的空格

问题描述

需要实现同时移除连字符(-)前后空格的效果,现有代码仅能移除连字符前方的空格,原有代码如下:

#!/usr/bin/python3

import re

test_strings = ["(1973)          -trailer.mp4", "(1973)-    fanart.jpg", "(1973)    -           poster.jpg"]

for i in test_strings:
        res =  re.sub(' +-', '-', i)
        print (res)

问题原因

原有正则规则' +-'只会匹配「1个及以上连续空格 + 连字符」的片段,替换操作仅会删除连字符前面的空格,连字符后方的空格没有被纳入匹配范围,自然无法被清除。

修正方案

调整正则匹配规则,把连字符前后的空格都纳入匹配范围,统一替换为单个连字符即可,修正后完整代码:

#!/usr/bin/python3

import re

test_strings = ["(1973)          -trailer.mp4", "(1973)-    fanart.jpg", "(1973)    -           poster.jpg"]

for i in test_strings:
    # 匹配连字符前后0个及以上的普通空格,替换为单个连字符
    res = re.sub(r' *- *', '-', i)
    print(res)

如果需要兼容制表符、换行符等其他类型的空白字符,可以把正则里的普通空格替换为\s,匹配规则写为r'\s*-\s*'即可,适配场景更广。

代码运行后输出结果符合预期:

(1973)-trailer.mp4
(1973)-fanart.jpg
(1973)-poster.jpg

内容的提问来源于stack exchange,提问作者bob_the_bob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 05:36:26