所以我想在正则表达式中匹配两个东西,我的句子是:“I love白色cats”and I want 2 matches from that sentence first the whole sentence as“I love white cats”and second match I want is just word:“白色”
我试过很多正则表达式,但它们要么匹配“白色”,要么匹配“我爱白猫”,但不是两者都匹配,所以如果有人能帮助我进行正则表达式,那就太好了。
**编辑:**我想使用动态句子构建正则表达式,比如我将有一个句子数组,然后我必须构建正则表达式,所以数组将如下所示:
["I love white cats", "white cats", "something else"]
我想构建正则表达式,使它匹配完整的句子,也匹配其他句子或单词。示例是简单版本,因为原始代码复杂。
我尝试了如下的正则表达式:
const sentence = "I love white cats";
const regex = /(\bI love white cats\b|\bwhite cats\b)/gi;
const matches = sentence.match(regex);
console.log(matches);
1条答案
按热度按时间jgovgodb1#
您可以通过在lookahead中捕获组来实现类似于所描述的行为。
生成的正则表达式的演示可以看到here。
注意:这个解决方案有一个警告。如果在你的
patterns
中有一个模式以另一个模式开始,那么只会找到一个(取决于数组中的序列)。例如,模式
["I love", "I love white cats"]
将产生单个匹配I love
。