如何使用REGEX从文件路径中提取文件名点分隔的第4段字符
正则写法方案
方案1:直接从完整路径捕获目标值
直接匹配全路径并将第4个点分隔段捕获到命名分组,无需额外拆分文件名:
.*\/(?:[^.]+\.){3}(?<target>[^.]+).*\.log
规则说明:
.*\/:匹配路径前缀直到最后一个/,和你原有提取文件名的前缀逻辑一致(?:[^.]+\.){3}:非捕获分组,重复匹配3次「非点字符+英文点」的组合,跳过前3个点分隔段(?<target>[^.]+):捕获第4个点分隔段到target命名分组,就是你需要的lm这类值.*\.log:匹配剩余内容直到.log后缀结尾,适配后缀前有多个点的场景
方案2:基于你现有提取文件名的逻辑二次匹配
如果已经通过.*\/(?<name>.*).log拿到了完整文件名,可以对文件名用下面的正则提取:
^(?:[^.]+\.){3}([^.]+)
捕获分组1的内容就是目标值。
内容的提问来源于stack exchange,提问作者Ankit Goyal
相关产品推荐
相关产品推荐

