Javascript 用于在关键字之间查找模式并将其存储在组中的正则表达式

Javascript 用于在关键字之间查找模式并将其存储在组中的正则表达式,javascript,regex,Javascript,Regex,我试图从JavaScript中的字符串中提取以下信息 输入字符串: ?q=Diwali_s:BRAND|discount:60 - 70^70 - 80^80 - 90|Brand:Yo Jelo&sort=plrty&MID=fashion_weekEndEOSS_womensFootwearYO 我需要从上面的字符串中提取品牌名yojelo 品牌:([^\&\\\\\\\\\\\\\\\\\] 我想的是: 查找关键字品牌:,然后将所有与&和不匹配的字符存储在一个组中,最后

我试图从JavaScript中的字符串中提取以下信息

输入字符串:

?q=Diwali_s:BRAND|discount:60 - 70^70 - 80^80 - 90|Brand:Yo
Jelo&sort=plrty&MID=fashion_weekEndEOSS_womensFootwearYO
我需要从上面的字符串中提取品牌名
yojelo

品牌:([^\&\\\\\\\\\\\\\\\\\]
我想的是:


查找关键字
品牌:
,然后将所有与
&
不匹配的字符存储在一个组中,最后检测是否有
&
。但是,组中仅包含字符
o
。请帮助我理解,我做错了什么?

您可以使用以下正则表达式:

\bBrand:([^&|]+)
抓到被俘的第1组


我不知道JavaScript,但是您当前的正则表达式很接近,但是第一个捕获组不包含量词
*

Brand:([^\&\|]*)[\&\|]
将星号移动到捕获组中会得到我认为您正在寻找的结果


我相信anubhava的回答也是一个很好的更新。

试试:
Brand:([^\&\\\\\\\\\\]+)*[\&\\\\\\\\\\\\\\\\\\\\\]
oops。。我真是太蠢了,竟然把*放在外面<代码>品牌:([^\&\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]+)[\&\\\\\\\\\\\\\\\\\\\\]工作正常。我应该睡一会儿