如何编写正则表达式提取字符串首尾字母及指定格式日期片段
正则实现方案
直接使用以下正则即可完成需求:
^([A-Za-z]):\\.*?(\d{2}-\d{2}-\d{4})([A-Za-z])\.[^.]+$
三个捕获组分别对应你需要提取的内容:
- 组1:路径开头的盘符首字母(对应示例里的
Q) - 组2:复用你原本的匹配规则,抓取
XX-XX-XXXX格式的日期串(对应示例里的02-01-1716) - 组3:日期之后、文件扩展名之前的尾字母(对应示例里的
A)
匹配完成后,按照$1: $2$3的格式拼接捕获结果,就能直接得到Q: 02-01-1716A的目标输出。
转义说明
在Python、Java这类需要对字符串反斜杠做转义的语言中,正则要写成转义后的形式,Python下的调用示例:
import re test_path = r"Q:\Region01s\FY 02\02-01-1716A.pdf" reg = r"^([A-Za-z]):\\.*?(\d{2}-\d{2}-\d{4})([A-Za-z])\.[^.]+$" res = re.match(reg, test_path) if res: output = f"{res.group(1)}: {res.group(2)}{res.group(3)}" print(output) # 打印结果:Q: 02-01-1716A
内容的提问来源于stack exchange,提问作者HEB
相关产品推荐
相关产品推荐

