a query parameter in a URL
Matches a query parameter in a URL. It finds the match anywhere inside the text. There are 2 capture groups.
Pattern
/[?&]([^=&]+)=([^&]*)/- Match scope
- anywhere inside the text
- Capture groups
- 2
- What it catches in the first example
- ?a=1
Try it yourself
Type any text and the parts this expression catches are highlighted. It runs in your browser and is never sent anywhere.
?a=1
/p?a=1&b=2
2 matches
Examples that match
- ?a=1
- /p?a=1&b=2
Examples that do not match
- a=1
- /path
Other expressions in this group
\[([^\]]+)\]\(([^)]+)\)a Markdown link^#{1,6}\s+.+$a Markdown heading line(?:^|\s)#([a-z0-9_]+)a hashtag(?:^|\s)@([a-z0-9_]{2,})an @ mentionhttps?://[^\s<>"]+a URL sitting inside ordinary text^https?://([^/:?#]+)just the domain out of a URL\.([a-z0-9]+)$the extension of a file name(?<=[a-z0-9])(?=[A-Z])the seam between words in camelCaseHow to read this
- With ^ and $ around it, the whole string must match; without them the match can sit anywhere. Always anchor an expression you use for validation.
- Round brackets ( ) capture what they wrap. When you only need grouping, write (?: ) so the numbering of later groups does not shift.
- Every expression here is checked against its examples. Even so, "looks like an email" and "is a real inbox" remain different questions.
- Nested open-ended repeats such as (a+)+ can blow up on certain inputs. Look for that shape before pasting someone else’s expression into your code.
Frequently asked questions
Q. What is the regex for a query parameter in a URL?
[?&]([^=&]+)=([^&]*).
Q. Which strings match?
Text like ?a=1 matches; text like a=1 does not.
Q. Does the whole string have to match?
No. It finds the part anywhere inside the text. Add ^ and $ around it if you want a whole-string check.
Q. How do I use what it caught?
There are 2 capture groups, so you can read them from match[1] onwards.