0

我想获取一些 mp3s 文件路径的说话者名称,如下所示:

/assets/audio/James_Lee/001.mp3
/assets/audio/Marc_Smith/001.mp3
/aasets/audio/blahblah/001.mp3

在前面的例子中,我们注意到每个说话者的名字都被两个斜杠包围,其中第一个以单词audio为前缀。我需要一个与上面使用 javascript 的示例类似的名称匹配的模式。

我试过http://regexpal.com/

audio/.*/

但它只匹配*audio/The_name/*我需要的地方*The_name*。另一件事我不知道如何在 javascript 中使用这样的模式replace().

4

3 回答 3

3

这将得到你的名字:(?<=\/assets\/audio\/).*(?=\/)

这是正在使用的正则表达式:http ://regexr.com?34747

考虑到 Javascript,你可以这样做:

var string = "/assets/audio/James_Lee/001.mp3";
var name = string.replace(/^.*\/audio\/|\/[\d]+\..*$/g, '');
于 2013-03-20T17:00:32.363 回答
1

试试这个:

var str = "/assets/audio/James_Lee/001.mp3\n/assets/audio/Marc_Smith/001.mp3";

var pattern = /audio\/(.+?)\//g;
var match;
var matches = [];
while ((match = pattern.exec(str)) !== null){
  matches.push(match[1]);
}

console.log(matches);

// If you want a string with only the names, you can re-combine the matches
str = matches.join('\n');
于 2013-03-20T17:06:28.703 回答
0

这个怎么样?

str.replace(/.*audio\/([^\/]*)\/.*/,"$1")
于 2013-03-20T17:14:07.447 回答