解析我传递查询字符串的Solr查询时遇到问题:
我最终必须使用的值如下所示:
ed_deliveryMethod:面对 面,ed_location:亚历山大,VA,ed_delivery:就地
我需要一个解析键值对的正则表达式:
所以我需要一个正则表达式来解析
FacetName:FacetValue
我用逗号进行分割,但该位置上的逗号会丢掉一些东西。
最后一个逗号是可选的,因为可能只有一个过滤器。
在问这个问题之前我确实尝试了很多东西,但没有成功。你可以看到,我不擅长正则表达式。
((?<Facet>.+):(?<FacetValue>.+),)+
答案 0 :(得分:2)
尝试以下方法:
(?<Facet>\w+):(?<FacetValue>.+?)(?=,\w+:|$)
也许您需要调整\w
以包含所有允许的密钥字符。
答案 1 :(得分:1)
使用QueryString.GetValues(key)
,它返回一个值数组。
E.g。如果您在评论中提及&filter=category:car&filter=category:motorcycle
,并且致电QueryString.GetValues("filter")
,则会获得包含元素"category:car"
和"category:motorcycle"
的数组。然后将每个元素拆分为:
等。
No regex needed