Javascript 提取字符串的子字符串,给定先前的子字符串(标志?)
假设我有一个字符串Javascript 提取字符串的子字符串,给定先前的子字符串(标志?),javascript,regex,Javascript,Regex,假设我有一个字符串s=“xxx-I hello yyy,我想提取hello给定的-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”],但是,我只想得
s=“xxx-I hello yyy
,我想提取hello
给定的-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”]
,但是,我只想得到['hello']
,即忽略该标志。我如何使用RegExp实现这一点?
函数findToken(msg、flag、regexp){
var match=msg.match(新RegExp(flag+'\\s'+RegExp,'g');
返回匹配项[0]。替换(标志+“”“”);
}
console.log(findToken(“xxx-I hello yyy”、“-I”、“\\w+”);
您可以切换到使用exec,添加捕获组,并在新数组中返回第一个捕获:
函数findToken(msg、flag、regexp){
返回[new RegExp(flag+'\\s('+RegExp+'),'g').exec(msg)[1]];
}
var result=findToken(“xxx-I你好yyy”、“-I”、“\\w+”;
console.log(result);
使用捕获组并访问其值。请参阅