从匹配的Regex JavaScript中选择字符

Select character from matched Regex JavaScript

本文关键字:选择 字符 JavaScript Regex      更新时间:2023-09-26

我想从匹配的文本中选择字符,但不知道如何进行查找选择。

例如,我只想从"apple"中选择"a",而不是从"菠萝"中选择,我使用了下面的正则表达式:

/'ba(?=pple)/gi

我只想从"apple"中选择"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));

使用lookbacking可以很容易地做到这一点,但遗憾的是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]; 
}