2

我正在尝试用另一个字符串替换字符串中的一段路径。我有一种感觉,RegEx 将是做到这一点的最佳方式,但不知道如何。我想用另一个字符串替换 xxxxx:

resources/audio/xxxxx/someaudio.mp3

“资源/音频/”的根路径将始终保持不变,但我正在尝试替换音频文件的父文件夹。音频文件是任意的,可以更改。有人可以帮忙吗?

4

2 回答 2

3

你可以试试这个:

var newFolder = "yyyy";
var r = "resources/audio/xxxxx/someaudio.mp3".replace(/(resources\/audio\/).*(\/.*)/g, '$1' + newFolder + '$2');
console.log(r);

看到它在这里工作。

于 2013-08-28T06:12:40.593 回答
0

replace捕获组的使用方法:

> 'resources/audio/xxxxx/someaudio.mp3'.replace(/\bxxxxx\/([^/]+)$/, 'yyyy/$1')
"resources/audio/yyyy/someaudio.mp3"
> 'resources/audio/xxxxx/anotheraudio.mp3'.replace(/\bxxxxx\/([^/]+)$/, 'yyyy/$1')
"resources/audio/yyyy/anotheraudio.mp3"

([^/]+)$1匹配文件名并捕获为组 1。此组 1在替换字符串中被引用。


或使用积极的前瞻:

> 'resources/audio/xxxxx/someaudio.mp3'.replace(/\bxxxxx(?=\/[^/]+$)/, 'yyyy')
"resources/audio/yyyy/someaudio.mp3"
> 'resources/audio/xxxxx/anotheraudio.mp3'.replace(/\bxxxxx(?=\/[^/]+$)/, 'yyyy')
"resources/audio/yyyy/anotheraudio.mp3"
于 2013-08-28T06:03:22.550 回答