从匹配的Regex JavaScript中选择字符

时间:2015-12-08 03:50:26

标签: javascript regex

我想从匹配的文本中选择字符,但不确定如何进行lookbehind选择。

例如,我想从“苹果”中选择“a”,而不是从“菠萝”中选择,我使用下面的正则表达式:

/\ba(?=pple)/gi

我只想从“苹果”中选择“e”,但不确定如何编写正则表达式。下面的正则表达式将返回整个单词“apple”,而不是“e”。

/\b(appl)e/gi

如何选择“e”或任何其他字符,例如“l”?

var text = "apple pineapple aeroplane";

var lookahead = /\ba(?=pple)/gi;
alert(text.match(lookahead));

var lookbehind = /\b(appl)e/gi;
alert(text.match(lookbehind));

1 个答案:

答案 0 :(得分:1)

您可以使用lookbehind轻松完成,但遗憾的是,javascript不支持此功能。您可以做的是使用群组捕获并仅检索您感兴趣的部分,例如只捕获“苹果”的“e”你可以写出类似的东西:

var matched = /\bappl(e)/.exec('apple');
var capturedChar = null;
if (matched) {
   // [0] contains the whole matched string, "apple", and [1] contains "e"
   capturedChar = matched[1]; 
}