Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从匹配的正则表达式JavaScript中选择字符_Javascript_Regex - Fatal编程技术网

从匹配的正则表达式JavaScript中选择字符

从匹配的正则表达式JavaScript中选择字符,javascript,regex,Javascript,Regex,我想从匹配的文本中选择字符,但不确定如何进行查找选择 例如,我只想从“苹果”中选择“a”,而不是从“菠萝”中选择“a”,我使用了下面的正则表达式: /\ba(?=pple)/gi 我只想从“apple”中选择“e”,但不确定如何编写正则表达式。下面的正则表达式将返回整个单词“apple”,而不是仅返回“e” 如何选择“e”或任何其他字符,如“l” var text=“苹果菠萝飞机”; var lookahead=/\ba(?=pple)/gi; 警报(text.match(lookahead

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

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

/\ba(?=pple)/gi
我只想从“apple”中选择“e”,但不确定如何编写正则表达式。下面的正则表达式将返回整个单词“apple”,而不是仅返回“e”

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

var text=“苹果菠萝飞机”;
var lookahead=/\ba(?=pple)/gi;
警报(text.match(lookahead));
var lookback=/\b(appl)e/gi;

警报(text.match(lookback))您可以轻松地使用,但不幸的是,javascript不支持它。您可以改为使用组捕获,仅检索您安装的部分,例如,要仅捕获“apple”中的“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]; 
}

你的第一个例子很有效,不是吗?只有
a
被提醒。这样如何,
/\b(a)pple/
同样地:
/\bappl(e)/
如果你想知道
匹配组的目的是什么()
像你这样选择字符会让我不知道你到底在干什么。@chris85,我试图不使用
匹配的[2]
,因为我需要一个长的正则表达式,这只是它的一部分,实际上我需要一个包含多个条件的很长的正则表达式,这只是它的一部分。所以我尽量不使用
matched[1]
。好吧,如果你能提供更完整的解释和例子,我们将能够更好地帮助你。
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]; 
}