0

次のようないくつかのmp3ファイルパスのトーカー名を取得したいと思います。

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

前の例では、各話者の名前が2つのスラッシュで囲まれており、最初の名前の前に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 に答える