How to use regular expressions

On this page


A number of apps provide advanced features that require the use of regular expressions for pattern matching. Generally, just a simple understanding of regular expressions and a few examples are enough to get by for most use cases. This page has a few simple examples to get started. Use the references for more advanced information. We recommend testing your regular expressions in one of the well-known regex testing sites such as RegexPlanet or Regex101.

Regex for workflow conditions

For Jira workflow functions using regex expressions to condition whether the post function should continue processing, a blank pattern means that condition processing is not done and processing should continue.

Key tips

  • Dot or period (.) is a special regex character. If you really want to match on it, you need to escape it with a backslash: \.
  • Don't be confused with generic pattern matching used for file systems for instance. On a file system, *.png means all files ending with .png. That is an illegal regex expression. For regex you need: .*\.png. Or to simplify: .*png which will find all files ending in png (not necessarily ending in an extension of png).
  • Regex is case sensitive by default. In most cases, use the case insensitive flag: (?i). See one of the examples below.
  • Dotall mode when you need to match across line breaks. 

In dotall mode, the expression . matches any character, including a line terminator. By default this expression does not match line terminators. Dotall mode can also be enabled via the embedded flag expression (?s). (The s is a mnemonic for "single-line" mode, which is what this is called in Perl.)

Simple examples

Advanced examples



(error)(tick)Find string not containing a word. In this example, files that do not have a .png extension


(error)(error)Find string not containing a word. In this example, files that do not have a .png extension
example.jpeg(?=^((?!\.png).)*$)(?=^((?!\.jpeg).)*$)(error)(error)Find string not containing a word. In this example, files that do not have a .png or .jpeg extension
collateral wholesale retail.*(?=.*\bretail\b.*)(?=.*\bcollateral\b.*).*(tick)
Match exact words anywhere in string. In this case a blank separated list of labels and we require both collateral and retail to be included before we want the match to be successful
wholesale retail.*(?=.*\bretail\b.*)(?=.*\bcollateral\b.*).*(error)
Both are required for a match
merger acquisition.*\b(?:merger|acquisition)\b.*(tick)
Match string containing either word

Content with regex label



Find answers from the community.

Ask a question to the community.

Log a request with our support team.

Confluence®, Jira®, Atlassian Bamboo®, Bitbucket®, Fisheye®, and Atlassian Crucible® are registered trademarks of Atlassian®
Copyright © 2005 - 2024 Appfire | All rights reserved. Appfire™, the 'Apps for makers™' slogan and Bob Swift Atlassian Apps™ are all trademarks of Appfire Technologies, LLC.