Does JQL support regex?
Short answer: no — and this trips a lot of people up. JQL's ~ operator looks like it might do pattern matching, but it's a Lucene text search that matches whole words or terms:
summary ~ "error"That finds issues whose summary contains the word “error.” What it can't do is match a pattern — a ticket code like PROD-\d{4}, an email address, or a string anchored to the start of a field. There is no native JQL operator for that.
The fix: Argon's regex function
Argon adds a regex function to JQL that matches a regular-expression pattern against any field:
issue in regex("project = DEV", "summary", "PROD-\d{4}")This returns issues in project DEV whose summary matches a PROD- code followed by four digits. Breaking it down:
"project = DEV"— the subquery defining which issues to evaluate"summary"— the field to match against"PROD-\d{4}"— the regular-expression pattern- The operator is
in(ornot into exclude matches).
For the complete reference — supported syntax, fields, and operators — see the Argon JQL functions documentation.
Worked examples
Find issues with a ticket-code pattern in the summary:
issue in regex("project = DEV", "summary", "PROD-\d{4}")Catch email addresses pasted into a description:
issue in regex("project = SUP", "description", "[\w.-]+@[\w.-]+")Exclude work-in-progress items tagged at the start of the summary:
issue not in regex("project = DEV", "summary", "^\[WIP\]")Drop any of these into a board filter, dashboard gadget, or saved filter to reuse the pattern search continuously.
Regex vs. JQL's ~ operator — which do you need?
They look similar but solve different problems:
- Match a word or term? → native JQL's
~is fine. - Match a pattern (digits, anchors, character classes, partial strings)? → you need
regex.
Looking for a different advanced query instead? See how to query time in status with JQL, or grab the full JQL Cheat Sheet.
FAQ
Does JQL support regular expressions?
Not natively. JQL's ~ operator does word-based “contains” matching (Lucene text search), not regular expressions. Argon's regex function adds true pattern matching against any field.
How do I match a pattern in a Jira field with JQL?
Use issue in regex("<subquery>", "<field>", "<pattern>") — for example issue in regex("project = DEV", "summary", "PROD-\d{4}") finds issues whose summary contains a PROD- ticket code.
Does Argon's regex search send my data outside Jira?
No. Argon is built natively on Atlassian Forge — your data never leaves your Jira instance. Read why that matters.
What's the difference between JQL's ~ operator and regex?
The ~ operator matches whole words or terms and supports only basic wildcards; it can't express patterns like digits, anchors, or character classes. The regex function matches a full regular-expression pattern, and supports the in and not in operators.
