Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RegEx使用only replace方法仅返回匹配的组_Javascript_Regex_Regex Group - Fatal编程技术网

Javascript RegEx使用only replace方法仅返回匹配的组

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

是否有方法使用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.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