我们说我有一个字符串s = "xxx -I hello yyy
,我想提取给定hello
的{{1}}。
E.g。我想创建一个函数,比如说-I
:
findToken
然后当我打电话给function findToken(msg, flag, regexp) {
return msg.match(new RegExp(flag + '\\s' + regexp, 'g'));
}
时,我现在得到了:
findToken("xxx -I hello yyy", "-I", "\\w+");
但是,我想得到["-I hello"]
,即。无视国旗。我如何使用RegExp实现这一目标?
答案 0 :(得分:1)
您可以转到使用exec,添加捕获组,并在新数组中返回第一个捕获:
function findToken(msg, flag, regexp) {
return [new RegExp(flag + '\\s(' + regexp + ')', 'g').exec(msg)[1]];
}
var result = findToken("xxx -I hello yyy", "-I", "\\w+");
console.log(result);

答案 1 :(得分:0)
function findToken(msg, flag, regexp) {
var match=msg.match(new RegExp(flag + '\\s' + regexp, 'g'));
return match[0].replace(flag+' ','');
}
console.log(findToken("xxx -I hello yyy", "-I", "\\w+"));