首页 > 解决方案 > 如何使用忽略的单词作为匹配的分隔符

问题描述

我正在分析以下格式的查询字符串:

Product:123 or Price:>50 or Price:<100

我需要的比赛是:产品:123,价格:>50,价格:<100

使用以下正则表达式可以正常工作:

[\S]+[:][\S]+

但是,现在我遇到了一些情况,其中查询字符串中可以包含带有空格的单词,例如:

New Price:456 or Product Type:Video Game

我需要的比赛是:新价格:456,产品类型:电子游戏

匹配的分隔符将始终是单词 AND 或 OR。我查看了一些与我的问题相似的其他问题,它们似乎都使用了负前瞻,但是我很难让它对我有用。

我试图使用负前瞻来匹配除 AND 或 OR 之外的所有内容。

标签: regex

解决方案


你可以试试这个。\s*((?:(?!and|or).)*)\s

这是一个关于 regex101 的演示。


推荐阅读