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

Python使用re.sub正则表达式保留-c和csv的需求求助

解决re.sub保留'-c'和'csv'的问题

你的需求是把输入字符串'-c dir/dir/dir/file.csv'处理为'-c csv',原正则的问题是直接把从-c到csv的整个片段替换为空,导致结果为空字符串。这里提供两种可行的正则方案:

方案1:捕获保留内容重组

使用捕获组分别匹配开头的-c和结尾的csv,替换时将两个捕获组用空格拼接:

import re
result = re.sub(r'(-c).*(csv)', r'\1 \2', '-c dir/dir/dir/file.csv')
print(result)  # 输出:'-c csv'

原理:正则(-c).*(csv)会匹配整个输入字符串,其中(-c)捕获开头的-c,.*匹配中间所有内容,(csv)捕获结尾的csv;替换时用\1和\2引用两个捕获组,中间加空格即可得到目标结果。

方案2:替换中间冗余内容

匹配-c之后到csv之前的所有内容,替换为空格:

import re
result = re.sub(r'(-c).*(?=csv)', r'\1 ', '-c dir/dir/dir/file.csv')
print(result)  # 输出:'-c csv'

原理:(?=csv)是正向预查,确保匹配的内容后面紧跟csv,这样(-c).*(?=csv)会匹配-c dir/dir/dir/file.这部分,替换为-c 后,剩下的csv自动拼接在后面,得到目标字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:26:16