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

如何用正则表达式提取路径字符串中下划线与句号间的字符?

解决方案

给你几个简单直接的正则写法,都能精准提取0090203:

写法1:精准匹配前缀后缀

invoice_(\d+)\.txt
  • invoice_:精准匹配路径里的固定前缀,确保只抓invoice_后面的数字
  • (\d+):捕获一个或多个数字(这就是你要的目标内容,用括号包裹成捕获组)
  • \.txt:匹配固定后缀.txt,注意点.在正则里是特殊字符,必须加反斜杠\转义

写法2:通用匹配最后下划线到后缀的内容

如果以后文件名前缀不是invoice_,只想抓最后一个下划线和.txt之间的数字,用这个:

_(\d+)\.txt
  • _:匹配最后一个下划线
  • (\d+):同样捕获中间的数字
  • \.txt:匹配后缀

怎么提取捕获的内容

比如在Python里:

import re
path = "/src/test/resources/shopping_invoice/invoice_0090203.txt"
match = re.search(r'invoice_(\d+)\.txt', path)
if match:
    print(match.group(1))  # 输出 0090203

你的原正则问题

你写的([^_]+)?\$")有语法错误:

  • [^_]+会匹配所有不是下划线的字符,所以会把0090203.txt全抓出来
  • 后面的\$"是多余的语法错误,完全没必要加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:10:25