替换一组字符串中的字符串 - 正则表达式

时间:2011-05-09 16:20:32

标签: javascript regex

如何使用正则表达式(JS)替换下面的长字符串中的字符串?

我的字符串可能是以下之一:


str = "this may have bgskin-akb4c hello how";
or
str = "have bgskin-a2b3c hello";
or
str = "bgskin-xyz2 hello";
or 
str = "bgskin-bbc";

在上面的字符串中我想替换单词的第二部分(例如:-akb4c,-xyz2),以“bgskin”开头,带有新的字符串值,例如:“bgskin-a2b3c hello” 变成“有bgskin-newstr你好”

感谢你的帮助。

非常感谢, →

4 个答案:

答案 0 :(得分:3)

在Javascript中

str.replace(/bgskin-\w+/g, 'bgskin-newstr');

答案 1 :(得分:1)

我的正则表达式模式末尾的gi标志告诉它进行全局和不区分大小写的搜索。

var pattern = /bgskin-[a-z0-9]+/gi;
str.replace(pattern, "bgskin-newstr");

看到它在jsFiddle上工作: http://jsfiddle.net/VMtnW/

答案 2 :(得分:1)

var str = "this may have bgskin-akb4c hello how";
var newstr = str.replace(/(bgskin-)[^\s]+/gi, "$1test");

答案 3 :(得分:0)

在Perl中,假设您总是希望替换字符串相同:s/bgskin-\w+/bgskin-newstr/g