gpt4 book ai didi

javascript - 正则表达式匹配包含 'apple' 但不匹配同一字符串中的 'orange' 的字符串

转载 作者:行者123 更新时间:2023-11-30 11:16:16 25 4
gpt4 key购买 nike

给定以下数据

green-pineapple-bird
red-apple-dog
blue-apple-cat
green-apple-orange-horse
green-apple-mouse

我正在尝试弄清楚如何让 (Javascript) RegExp.test() 匹配任何包含单词“apple”(任何地方)但不匹配任何包含单词“orange”(任何地方)的条目.结果列表将是:

red-apple-dog  
blue-apple-cat
green-apple-mouse

为了便于阅读,我在数据中加入了破折号。实际数据可能包含也可能不包含破折号。

如果我尝试这样做:

/^(?!orange).*(apple).*/gm

使用 https://regex101.com/它匹配所有行。

使用 JavaScript RegEx excluding certain word/phrase?为了获得灵感,我尝试了:

/^(?!.*apple\.(?:orange|butter)).*apple\.\w+.*/gm

如果它有所不同,我正在使用 Mozilla Rhino 1.7R4。

最佳答案

对于apple 的每个字符(在 之前或 之后),您需要对 orange 重复否定前瞻.因为你不想 pineapple为了匹配,您还应该在 apple 周围放置单词边界:

const re = /^((?!orange).)*\bapple\b((?!orange).)*$/;
`green-pineapple-bird
red-apple-dog
blue-apple-cat
green-apple-orange-horse
green-apple-mouse`
.split('\n')
.forEach(str => {
console.log(re.test(str) + ' ' + str)
});

关于javascript - 正则表达式匹配包含 'apple' 但不匹配同一字符串中的 'orange' 的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51412838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com