带有查询字符串的 URL 的正则表达式
Regex for URL with query string
我正在尝试创建一个正则表达式以在 fiddler 中用作规则。我不太擅长正则表达式。
这个正则表达式:
http://myServer:28020/MyService/ItemWebService.json?([a-zA-Z]+)
匹配下面的 URL:
http://myServer:28020/MyService/ItemWebService.json?action=keywordSearch&username=StockOnHandPortlet&sessionId=2H7Rr9kCWPgIZfrxQiDHKp0&keywords=blue&itemStatus=A
到目前为止一切顺利。但是为什么当我尝试这个正则表达式时:
http://myServer:28020/MyService/ItemWebService.json?action=keywordSearch([a-zA-Z]+)
与上面URL不符。为什么会这样?
使用
(\?|\&)([^=]+)\=([^&]+)
带 g 选项(全局)
http://myServer:28020/MyService/ItemWebService.json(\?|\&)([^=]+)\=([^&]+)
在正则表达式中,您需要在字符 class.
之外转义 .
和 ?
所以,这足以匹配 URL 本身:
http://myServer:28020/MyService/ItemWebService\.json
URL with query string can be matched with
http://myServer:28020/MyService/ItemWebService\.json\??(?:&?[^=&]*=[^=&]*)*
见demo
解释:
http://myServer:28020/MyService/ItemWebService\.json
- 匹配基础 URL 我们需要转义 .
以字面匹配它
\??
- 匹配 0 或 1(由于 ?
量词)文字 ?
(?:&?[^=&]*=[^=&]*)*
- 匹配 0 个或多个(由于 *
)&?[^=&]*=[^=&]*
的序列:
&?
- 0 或 1 &
(无需转义)
[^=&]*
- =
和 &
以外的 0 个或多个字符
=
- n 等号
[^=&]*
- =
和 &
以外的 0 个或多个字符
如果要匹配第一个查询参数=值设置为 action=keywordSearch
的 URL,可以使用 following regex:
http://myServer:28020/MyService/ItemWebService\.json\?action=keywordSearch(?:&?[^=&]*=[^=&]*)*
我正在尝试创建一个正则表达式以在 fiddler 中用作规则。我不太擅长正则表达式。
这个正则表达式:
http://myServer:28020/MyService/ItemWebService.json?([a-zA-Z]+)
匹配下面的 URL:
http://myServer:28020/MyService/ItemWebService.json?action=keywordSearch&username=StockOnHandPortlet&sessionId=2H7Rr9kCWPgIZfrxQiDHKp0&keywords=blue&itemStatus=A
到目前为止一切顺利。但是为什么当我尝试这个正则表达式时:
http://myServer:28020/MyService/ItemWebService.json?action=keywordSearch([a-zA-Z]+)
与上面URL不符。为什么会这样?
使用
(\?|\&)([^=]+)\=([^&]+)
带 g 选项(全局)
http://myServer:28020/MyService/ItemWebService.json(\?|\&)([^=]+)\=([^&]+)
在正则表达式中,您需要在字符 class.
之外转义.
和 ?
所以,这足以匹配 URL 本身:
http://myServer:28020/MyService/ItemWebService\.json
URL with query string can be matched with
http://myServer:28020/MyService/ItemWebService\.json\??(?:&?[^=&]*=[^=&]*)*
见demo
解释:
http://myServer:28020/MyService/ItemWebService\.json
- 匹配基础 URL 我们需要转义.
以字面匹配它\??
- 匹配 0 或 1(由于?
量词)文字?
(?:&?[^=&]*=[^=&]*)*
- 匹配 0 个或多个(由于*
)&?[^=&]*=[^=&]*
的序列:&?
- 0 或 1&
(无需转义)[^=&]*
-=
和&
以外的 0 个或多个字符
=
- n 等号[^=&]*
-=
和&
以外的 0 个或多个字符
如果要匹配第一个查询参数=值设置为 action=keywordSearch
的 URL,可以使用 following regex:
http://myServer:28020/MyService/ItemWebService\.json\?action=keywordSearch(?:&?[^=&]*=[^=&]*)*