给定前一个子字符串(标志?),提取字符串的子字符串

时间:2017-03-06 17:06:33

标签: javascript regex

我们说我有一个字符串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实现这一目标?

2 个答案:

答案 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+"));