我有一个成分清单,我需要突出它的过敏原。然而,也有一些例外需要被忽略。我的regex并不是忽略复合字符串(包含多个单词的字符串与空格隔开,例如,杏仁牛奶)。
在这个例子中,我想强调乳,蛋类,RICE和。然而,我想忽略米乳和大蒜黄油,如下所示。
牛肉Eggs(76%)(beef,干酪、米乳、猪肉、牛奶)、调味料(8%)(芝麻、罗勒、鸡蛋、迷迭香、龙蒿、美味黄油、马约拉姆、牛至和米海湾叶)、普罗旺斯酱水(16%)(普罗旺斯酱、芹菜、鸡汤、黄油E 219、大麦、卢平、大蒜黄油和柠檬汁)
我在regex 101 => 示例上的代码
(?<!rice milk|garlic butter)(?<=milk|eggs|butter|rice)|(?!rice milk|garlic butter)(?=milk|eggs|butter|rice)发布于 2021-06-25 12:12:45
我建议采用不同的方法,将regex逻辑按每个单词拆分:
(?:(?<!rice )milk|(?<!garlic )butter|eggs|rice(?! milk))解释:
(?:..) -非捕获群
(?<!rice )milk -匹配milk,但成功的不是rice (排除rice milk) -其他正则表达式部分也遵循相同的方法。
| -交替算子
发布于 2021-06-25 12:16:47
您可以匹配您不想要的内容,在本例中是rice milk和garlic butter,并使用替换|使用您想要的捕获组
\b(?:rice milk|garlic butter)\b|\b(milk|eggs|rice|butter)\b组1的值在regex演示中以绿色高亮显示。
https://stackoverflow.com/questions/68130637
复制相似问题