正则表达式技术问询:提取文件名最后下划线后及倒数第二与最后下划线间内容
正则表达式提取文件名特定部分
提取最后一个下划线之后的内容
你当前用的.*_(.*)能得到结果,但更高效严谨的写法是[^_]+$——它直接匹配字符串末尾的所有非下划线字符。针对示例文件名12345A_NameHere_FRONT_3_10,会提取出10。
提取倒数第二个下划线与最后一个下划线之间的内容
有两种实用写法:
- 分组捕获法:用
.*_([^_]+)_([^_]+)$,这个正则会生成两个捕获组:第一个组对应倒数第二个和最后一个下划线之间的内容,第二个组对应最后一个下划线之后的内容。对示例文件,第一个组得到3,第二个组得到10。 - 直接匹配法:用
(?<=_)[^_]+(?=_[^_]+$),通过正向预查和反向预查定位目标区间,无需分组就能直接提取出3。
内容的提问来源于stack exchange,提问作者Zeppelin Fogarty
相关产品推荐
相关产品推荐

