Javascript RegEx使用only replace方法仅返回匹配的组
是否有方法使用only replace仅返回匹配的组 我有这根绳子 “xml版本2.1.2-emerald” 我想把这个版本去掉 我正在使用这个正则表达式:Javascript RegEx使用only replace方法仅返回匹配的组,javascript,regex,regex-group,Javascript,Regex,Regex Group,是否有方法使用only replace仅返回匹配的组 我有这根绳子 “xml版本2.1.2-emerald” 我想把这个版本去掉 我正在使用这个正则表达式: const regex = /\sversion\s(.*?)\s/; const str = `xml version 2.1.2-emerald https://www.example.com`; const subst = `$1`; const result = str.replace(regex, subst); console
const regex = /\sversion\s(.*?)\s/;
const str = `xml version 2.1.2-emerald https://www.example.com`;
const subst = `$1`;
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
// desired result: "2.1.2-emerald"
但我希望结果只包含匹配项。有没有一种方法可以使用
replace()
方法执行此操作?而不是replace
,而是匹配
,并提取第一个捕获的组。您也可以使用(\S+)
而不是(.*)\S
:
const regex=/\sversion\s(\s+)/;
const str=`xml版本2.1.2-emeraldhttps://www.example.com`;
const result=str.match(正则表达式);
console.log(结果[1])代码>是,关键是完全收集整个字符串数据,然后用所需的组替换它:
const regex=/.*\s版本(.*)\s.*/gs;
const str=`xml版本2.1.2-emeraldhttps://www.example.com`;
常量subst=`1`;
//被替换的值将包含在结果变量中
const result=str.replace(regex,subst);
log('替换结果:',结果)代码>这是完全匹配。(从模式末尾的版本
到\s
)