从查询字符串中提取带符号的值
Extract values with ampersands from query string
我想从以下查询字符串中提取 baz 值:
foo=bar&baz=qux&norf&corge=grault
问题是 baz 的值包含 &。我使用这样的 lookhead 取得了一些成功:
/baz=(.*)(?=[^=]*&)/
但是,它无法处理行尾或行尾后有多个键值的情况。
是否有可以处理此问题的正则表达式?
baz=([^=]*)(?=&|$)
这应该用于 you.See 演示。
您可以使用
\bbaz=([^=&]+(?:&[^=&\n]+)?)
见demo
如果您有多个包含 &
的值,您可以使用
\bbaz=([^=&]+(?:&[^=&\n]+)*)
使用以下 regex
:
baz=(\w+&\w+)
说明
baz=
:按字面匹配字符 baz=(区分大小写)
(\w+&\w+)
:捕获组
\w+ 匹配任何单词字符 [a-zA-Z0-9_]
&
:按字面意思匹配字符&
var queryString = 'foo=bar&baz=qux&norf&corge=grault';
var value = queryString.match(/baz=(\w+&\w+)/)[1];
document.write(value);
我想从以下查询字符串中提取 baz 值:
foo=bar&baz=qux&norf&corge=grault
问题是 baz 的值包含 &。我使用这样的 lookhead 取得了一些成功:
/baz=(.*)(?=[^=]*&)/
但是,它无法处理行尾或行尾后有多个键值的情况。
是否有可以处理此问题的正则表达式?
baz=([^=]*)(?=&|$)
这应该用于 you.See 演示。
您可以使用
\bbaz=([^=&]+(?:&[^=&\n]+)?)
见demo
如果您有多个包含 &
的值,您可以使用
\bbaz=([^=&]+(?:&[^=&\n]+)*)
使用以下 regex
:
baz=(\w+&\w+)
说明
baz=
:按字面匹配字符 baz=(区分大小写)(\w+&\w+)
:捕获组 \w+ 匹配任何单词字符[a-zA-Z0-9_]
&
:按字面意思匹配字符&
var queryString = 'foo=bar&baz=qux&norf&corge=grault';
var value = queryString.match(/baz=(\w+&\w+)/)[1];
document.write(value);