使用正则表达式从绝对路径中提取带扩展名的文件名
用正则表达式提取路径中的带扩展名完整文件名
可以用这个简洁的正则表达式实现需求:
[^/]+$
正则解释
[^/]:匹配除了斜杠/之外的任意单个字符+:表示前面的匹配规则重复至少1次$:匹配字符串的结尾位置
这个规则会直接抓取路径中最后一个斜杠之后的所有内容,正好就是你需要的带扩展名的完整文件名。
测试示例
把你给出的路径代入测试,结果如下:
- 输入:
./app/txt.graphql→ 匹配结果:txt.graphql - 输入:
./txt.graphql→ 匹配结果:txt.graphql - 输入:
./test/app/bin/txt.graphql→ 匹配结果:txt.graphql
额外说明
如果你的场景中可能出现Windows风格的反斜杠路径(比如.\app\txt.graphql),可以把正则调整为:
[^/\\]+$
这里的\\是转义后的反斜杠,确保同时匹配斜杠和反斜杠作为路径分隔符。
如果路径末尾可能带有斜杠(比如./app/txt.graphql/),可以用下面的正则避免匹配空内容:
[^/]+(?=/?$)
(?=/?$)是正向预查,确保匹配的内容后面要么是结尾,要么是一个斜杠结尾。
内容的提问来源于stack exchange,提问作者Rajat Singh
相关产品推荐
相关产品推荐

