Javascript 如何在不同的组中匹配X个整词数?
我目前正在尝试将搜索词两侧的X个单词数与三个匹配组进行匹配,包括词前的X个单词数、词后的X个单词数 值得注意的是,我需要这个正则表达式在Javascript中工作 例如,如果我的完整字符串为: “你好,这是一个长句子,在某个地方有一个匹配的单词” 如果我每边要匹配的单词的X号为2,搜索词为“句子”,我希望我的正则表达式匹配返回:Javascript 如何在不同的组中匹配X个整词数?,javascript,regex,Javascript,Regex,我目前正在尝试将搜索词两侧的X个单词数与三个匹配组进行匹配,包括词前的X个单词数、词后的X个单词数 值得注意的是,我需要这个正则表达式在Javascript中工作 例如,如果我的完整字符串为: “你好,这是一个长句子,在某个地方有一个匹配的单词” 如果我每边要匹配的单词的X号为2,搜索词为“句子”,我希望我的正则表达式匹配返回: 第1组:“长时间” 第2组:“判决” 第三组:“有a” 我试过用paren来组成小组,也试过用\w速记来匹配整个单词 这让我非常接近,匹配我想要的一切,但只是没有将
- 第1组:“长时间”
- 第2组:“判决”
- 第三组:“有a”
\w
速记来匹配整个单词
这让我非常接近,匹配我想要的一切,但只是没有将匹配分为3个单独的组
(\w+ ){0,2}(string)( \w+){0,2}
要测试的字符串:
这是我的长字符串,我知道它是什么
预期成果:
- 第一组:“我的龙”
- 第2组:“字符串”
- 第三组:“和我”
((?:\w+[]){2})(字符串)((?:[]\w+{2})
Javascript示例:
const regex=/((?:\w+[]){2})(string)((?:[]\w+{2})/gm;
const str=`这是我的长字符串,我知道它是什么';
设m=regex.exec(str);
m、 forEach((匹配,组索引)=>{
log(`Found match,group${groupIndex}:${match}`);
});
您需要在一个组中捕获(\w+{0,2}
,与(\w+{0,2}
相同。类似于/((?:\w+{0,2})(字符串)((?:\w+{0,2})/
或/(?:\w+\s){0,2})(字符串)((?:\s\w+{0,2})/
例如:
var string=“这是我的长字符串,我知道它是什么”;
log(string.match(/((?:\w+\s){0,2})(string)((?:\s\w+{0,2})/)代码>