我想从匹配的文本中选择字符,但不确定如何进行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));
答案 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];
}