【发布时间】:2023-03-29 11:56:01
【问题描述】:
我正在尝试使用正则表达式构建搜索,该表达式使用特定术语来拆分和过滤搜索查询。例如,如果我有这样的查询:
artist rolling stones track stupid girl track paint it black,它会拉出滚石乐队的专辑,并把曲目愚蠢的女孩涂成黑色。理想情况下(经过一些处理)我会像这样将数据发送到服务器:{ artists : ['rolling stone'], tracks : ['stupid girl', 'paint it black'] }。
我有一个基本的正则表达式,它匹配关键字(艺术家/曲目)和关键字之后的第一个单词(滚动/愚蠢/绘画),但是如果我让它匹配空格和后面的单词,它只会匹配整个字符串。
这是我目前拥有的正则表达式:(artist|track)\s([\w]+)。我猜我需要使用停用词或其他东西来创建短语之间的边界,但我对构建正则表达式并不是很有经验。任何帮助将不胜感激。
【问题讨论】:
-
你能把你的输入输出写清楚吗?
-
输入:
artist rolling stones track stupid girl track paint it black。我希望正则表达式找到以下短语:“艺术家滚石”、“追踪愚蠢的女孩”、“追踪将它涂成黑色”。 -
查询字符串中可以有无限数量的
artist artist name和track track name短语。也可能没有曲目,或者只有一位艺术家,甚至可能反过来。这对您来说是否足够清楚?
标签: javascript regex keyword-search