正则表达式匹配字符串直到字符出现,除非它包含在引号

时间:2016-09-21 15:49:22

标签: regex

假设QueryString看起来像:$filter=Name eq "Demo"&project=10

我想使用群组来获取$filter的值。 这可以使用以下正则表达式完成:

\$filter=(?P<group>[^&]*)

但是,当过滤器看起来像$filter=Name eq "De&mo"&project=10时,正则表达式不再起作用,因为它与&中包含的"符号相匹配。

如何调整此正则表达式以便检索完整的$filter

亲切的问候

1 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式匹配并使用查询参数$filter中的所有带引号的字符串:

\$filter=((?:[^"&]*"[^"]*")*[^"&]*)

RegEx Demo