An Argon JQL function

How to use regex in JQL searches

Native Jira JQL has no regular-expression support — its ~ operator only does word-based “contains” matching. To match a real pattern — a ticket code, an email, a version string — in any field, you need a JQL function like Argon's regex.

Try Argon free on the Atlassian Marketplace
All resources

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 (or not in to 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.

Search Jira the way you actually think

Argon adds regex and 30+ other JQL functions to Jira — Forge-native, so your data never leaves your instance.

Try Argon free on the Atlassian Marketplace