使用查询字符串中的&符号提取值

时间:2015-07-23 11:40:49

标签: regex regex-lookarounds

我想从以下查询字符串中提取baz值:

reportClientDoc.getDataDefController().getRecordFilterController().setFormulaText("your record selection formula here");

问题是baz的值包含&amp ;.我使用这样的样子取得了一些成功:

foo=bar&baz=qux&norf&corge=grault

但是,它无法处理行尾或者后面有多个键值。

是否有可以处理此问题的正则表达式?

3 个答案:

答案 0 :(得分:2)

baz=([^=]*)(?=&|$)

这应该为你做。参见演示。

https://regex101.com/r/oC5rY5/1

答案 1 :(得分:1)

使用以下regex

baz=(\w+&\w+)

<强>解释

  1. baz=:匹配字符baz =字面(区分大小写)
  2. (\w+&\w+):捕获群组 \ w +匹配任何单词字符[a-zA-Z0-9_]
  3. &:字面匹配字符&
  4. RegEx101 Demo

    var queryString = 'foo=bar&baz=qux&norf&corge=grault';
    
    var value = queryString.match(/baz=(\w+&\w+)/)[1];
    
    document.write(value);

答案 2 :(得分:0)

您可以使用

\bbaz=([^=&]+(?:&[^=&\n]+)?)

请参阅demo

如果您有多个& - 包含值,则可以使用

\bbaz=([^=&]+(?:&[^=&\n]+)*)

请参阅another demo