如何使用正则表达式从字符串中提取两组目标字段并完成sbj格式化
实现代码
import re s = '/mnt/d/datat/ssome_part - Copy/s14_060319m.set.zip' # 正则匹配提取目标字段 match_res = re.search(r'Copy\/(s\d+)_([^.]+\.)', s) if match_res: # 首字母大写直接用capitalize方法实现 sbj = match_res.group(1).capitalize() sub = match_res.group(2)
输出结果
sbj = 'S14' sub = '060319m.'
正则规则说明
- 先匹配
Copy/前缀定位目标字段的起始位置,规避路径前缀的干扰 - 第一个捕获组
(s\d+)匹配小写s开头、后续跟数字的sbj原始值,调用capitalize()方法直接完成首字母大写的格式化需求 - 中间的
_匹配两个字段的分隔符 - 第二个捕获组
([^.]+\.)匹配下划线后到第一个.之前的所有字符,同时包含末尾的.,自动适配sub末尾可变的字母后缀需求
内容的提问来源于stack exchange,提问作者rpb
相关产品推荐
相关产品推荐

