在一组字符串中重新排列一个字符串 - 正则表达式

Relace a string in a set of strings - regex

本文关键字:字符串 排列 一个 正则表达式 一组 新排列      更新时间:2023-09-26

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

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


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

在上面的字符串中,我想用新的字符串值替换单词的第 2 部分(例如:-akb4c、-xyz2),以"bgskin"开头,例如:"have bgskin-a2b3c hello"变为"have bgskin-newstr hello"

感谢您对此的帮助。

非常感谢,L

在 Javascript 中

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

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

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

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

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