我想提取文件名的第二个"文件扩展名",以便:
/Users/path/my-path/super.lol.wtf/main.config.js
我需要的是:
.config.js
如果我得到一个包含2个字符串的数组,那将是多么令人敬畏:
var output = ['main', '.config.js'];
我尝试过的:
^(\d+\.\d+\.)
但这不起作用.
谢谢
您可以使用以下内容:
([^\/.\s]+)(\.[^\/\s]+)$
这里的例子
([^\/.\s]+)
- 捕获组,不包括字符/
和.
字面以及任何空格字符一次或多次.
(\.[^\/\s]+)
- 与上面的表达相似; 捕获从.
字符开始的组; 排除字符/
和.
字面以及任何空格字符一次或多次.
$
- 结束
或者,您也可以使用以下内容:
(?:.*\/|^)([^\/.\s]+)(\.[^\/\s]+)$
这里的例子
(?:.*\/|^)
- 与上面的表达式相同,但这会缩小匹配范围以减少步数.它是一个非捕获组,可以匹配行的开头或/
字符.
第一个表达式更短,但第二个表达式具有更好的性能.
两个表达式都匹配以下内容:
['main', '.config.js']
在以下各项中:
/Users/path/my-path/some.other.ext/main.config.js some.other.ext/main.config.js main.config.js