Javascript 匹配文件名基

Javascript 匹配文件名基,javascript,regex,Javascript,Regex,还在这里学习正则表达式,但我需要一些帮助 我有这根绳子 assets/bigbluseomething\u tn.jpg 我需要匹配这个 bigbluseomething 我最接近的就是这个 `[^\/][a-zA-Z]+\uz 问题是我一直在匹配下划线 在其他几个线程的建议下,我尝试了这个[^\/][a-zA-Z]+[^\],但没有效果 我是用javascript编写的,我相信有些正则表达式在这种语言中不起作用。这应该能满足您的需要: var str = 'assets/BigBlueSome

还在这里学习正则表达式,但我需要一些帮助

我有这根绳子
assets/bigbluseomething\u tn.jpg

我需要匹配这个
bigbluseomething

我最接近的就是这个
`[^\/][a-zA-Z]+\uz

问题是我一直在匹配下划线 在其他几个线程的建议下,我尝试了这个
[^\/][a-zA-Z]+[^\]
,但没有效果


我是用javascript编写的,我相信有些正则表达式在这种语言中不起作用。

这应该能满足您的需要:

var str = 'assets/BigBlueSomething_tn.jpg';
var match = str.split('/')[1].match(/[a-z]+/i)[0];
编辑:我使用了
split
,因为否则您必须循环匹配以提取所需内容<代码>匹配不捕获组

'assets/BigBlueSomething_tn.jpg'
       -^---------------------^- // .split('/')[1]
       -^--------------^- // .match(/[a-z]+/i)[0]

[a-z] // match any character from a to z
+ // at least one time
/i // case-insensitive to match A-Z as well
此正则表达式与以下字符串中的“BigBlueSomething”匹配:

'assets/BigBlueSomething_tn.jpg' 
'BigBlueSomething_tn.jpg'
'BigBlueSomething_TN.jPeG'
'dir1/dir2/BigBlueSomething_tn.gif'
'BigBlueSomething.png'
'BigBlueSomething_thumb.png'
'directory/BigBlueSomething_thumb.JPEG'

试试这个:

var text = "assets/BigBlueSomething_tn.jpg";
var matches = /assets\/(.+?)_tn.jpg/gi.exec(text);
if(matches && matches[1]) {
    var str = matches[1];
}

我补充了一些解释。找到你想要的零件的标准是什么?在
/
之间的每一次?请参阅“环顾操作员”的说明
var text = "assets/BigBlueSomething_tn.jpg";
var matches = /assets\/(.+?)_tn.jpg/gi.exec(text);
if(matches && matches[1]) {
    var str = matches[1];
}