Javascript 第二个";后的正则表达式提取字符串&引用;字符串末尾的点字符
我想提取文件名的第二个“文件扩展名”,以便:Javascript 第二个";后的正则表达式提取字符串&引用;字符串末尾的点字符,javascript,regex,string,Javascript,Regex,String,我想提取文件名的第二个“文件扩展名”,以便: /Users/path/my-path/super.lol.wtf/main.config.js 我需要的是: .config.js 如果我得到一个包含两个字符串的数组,那将是多么棒的事情: var output = ['main', '.config.js']; 我所尝试的: ^(\d+\.\d+\.) 但那是行不通的 谢谢以下是您需要的: (?:\/?(?:.*?\/)*)([^.]+)*\.([^.]+\.[^.]+)$ (?:表示
/Users/path/my-path/super.lol.wtf/main.config.js
我需要的是:
.config.js
如果我得到一个包含两个字符串的数组,那将是多么棒的事情:
var output = ['main', '.config.js'];
我所尝试的:
^(\d+\.\d+\.)
但那是行不通的
谢谢以下是您需要的:
(?:\/?(?:.*?\/)*)([^.]+)*\.([^.]+\.[^.]+)$
表示检测和忽略(?:
表示除[^.]+
表示直到最后一次通过*?
/
选中您可以使用以下选项:
([^\/.\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
-捕获组,不包括字符([^\/.\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
-与上面的表达式相同,只是这将缩小匹配范围以减少步骤数。它是一个非捕获组,将匹配行首或(?:.*\/|^)
字符/
第一个表达式较短,但第二个表达式具有更好的性能 这两个表达式将匹配以下内容:
([^\/.\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
在以下各方面:
([^\/.\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
工作非常完美,但如果我认为文件路径是相对的,那么仍然希望它能够工作,因此在字符串中没有“/”,比如:您希望从
hello.world/foo.bar.fizz.buzz
?或者.htaccess
?是否也可以提取“config”?这完全是错误的awesome@randomKek是的,看-…如果你不想要“配置”从一个点开始,