仍然在这里学习正则表达式,但我需要一些帮助。
我有这个字符串
assets/BigBlueSomething_tn.jpg
我需要匹配这个
BigBlueSomething
我得到的最近的是这个
`[^\/][a-zA-Z]+_
问题是我一直与下划线匹配
我已经尝试了这个[^\/][a-zA-Z]+[^_]
来自其他几个线程的建议,但无济于事。
我是用javascript编写的,我相信有一些正则表达式的东西在那种语言中不起作用。
答案 0 :(得分:1)
这应该可以满足您的需求:
var str = 'assets/BigBlueSomething_tn.jpg';
var match = str.split('/')[1].match(/[a-z]+/i)[0];
编辑:我使用split
,否则您必须循环匹配以提取您需要的内容。 match
不会捕获群组。
'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
答案 1 :(得分:1)
试试这个:
var text = "assets/BigBlueSomething_tn.jpg";
var matches = /assets\/(.+?)_tn.jpg/gi.exec(text);
if(matches && matches[1]) {
var str = matches[1];
}
答案 2 :(得分:0)
/^(?:.*\/)?([0-9a-z]+)(?:_[a-z]+)?\.(?:jpg|jpeg|png|gif)$/i
此正则表达式匹配以下字符串中的“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'