General Information
The expression parser accepts the most common operators. The operators listed below are available for the following data types:
Operators =
and !=
are also available for type BOOLEAN
Case-sensitive operators
Operator | Meaning | Examples (all examples return true ) |
---|---|---|
= | equal to | 1 = 1 "HELLO" = toUpperCase("Hello") %{...description} = {...timeoriginalestimate} , auto-casting numeric field {...timeoriginalestimate} to Text-String. %{...timeoriginalestimate} = toString({...timeoriginalestimate}) , explicit casting of numeric field {...timeoriginalestimate} to Text-String. true = true %{...cf10001} = null , for checking whether field with code %{...cf10001} is not initialized. [1, 2, 3] = [1, 2, 3] , when used with lists elements existence and its order are evaluated. ["blue", "red", "green"] = ["blue", "red", "green"] |
!= | not equal to | 0 != 1 "HELLO" != "Hello" %{...description} != "Hello" true != false {...cf10010} != null , for checking whether the numeric field with code {...cf10010} is initialized. [1, 2, 3] != [1, 3, 2] , when used with lists elements existence and its order are evaluated. ["blue", "red", "green"] != ["blue", "green", "red"] |
< | lower than | 1 < 2 "abc" < "bbc" "abc" < "abcd" |
> | greater than | 2 > 1 "bbc" > "abc" "abcd" > "abc" |
<= | less than or equal to | - |
>= | greater than or equal to | - |
~ | contains | "Hello world!" ~ "world" , checks whether a string contains a substring. %{...componentLeads} ~ %{...currentUser} , checks whether "Component leaders" contains "Current user". linkedIssues() ~ subtasks() , checks whether all sub-tasks are also linked to current issue. [1, 2, 3, 2, 2, 4] ~ [2, 1, 2] , when used with lists cardinalities must match. ["blue", "red", "green", "red", "white", "red"] ~ ["red", "green", "red"] (["green", "red"] ~ ["red", "green", "red"]) = false |
!~ | doesn't contain | "world" !~ "Hello world!" %{...fixVersions} !~ %{...versions} , checks whether "Fix version/s" doesn't contain all versions in "Affects version/s". fieldValue(%{...reporter}, linkedIssues()) !~ fieldValue(%{...reporter}, subtasks()) , checks whether linked issues reporters don't include all sub-tasks reporters. [1, 2, 3, 2, 2, 4] !~ [2, 1, 1, 4] , when used with lists cardinalities must match. ["blue", "red", "green", "red", "red"] !~ ["red", "green", "green", "red"] |
in | is contained in | "world" in "Hello world!" , to check whether a substring is contained in a string. %{...currentUser} in %{...componentLeads} , checks whether "Current user" is contained in "Component leaders". subtasks() in linkedIssues() , checks whether all sub-tasks are also linked to current issue. [1, 1, 2] in [2, 1, 1, 1, 4] , cardinality must match. ["blue", "red", "red"] in ["red", "green", "blue", "red", "red"] , cardinality must match. 2 in [1, 2, 3] "blue" in ["red, "blue", "white"] |
not in | isn't contained in | "Hello world!" not in "world" %{...versions} not in %{...fixVersions} , checks whether not all versions in "Affects version/s" are contained in "Fix version/s". fieldValue(%{...reporter}, subtasks()) not in fieldValue(%{...reporter}, linkedIssues()) , checks whether not all sub-tasks reporters are included in linked issues reporters. [1, 1, 2, 2] not in [2, 1, 1, 1, 4] , cardinality must match. ["blue", "red", "red", "blue"] not in ["red", "blue", "red", "red"] , cardinality must match. 5 not in [1, 2, 3, 3, 4] "orange" not in ["blue", "red", "white"] |
any in | some element is in | %{...versions} any in %{...fixVersions} , checks whether any version in "Affects version/s" is contained in "Fix version/s". fieldValue(%{...reporter}, subtasks()) any in fieldValue(%{...reporter}, linkedIssues()) , checks whether any sub-task's reporter is present among linked issues reporters. [1, 3] any in [3, 4, 5] ["blue", "white"] any in ["black", "white", "green"] |
none in | no single element is in | %{...versions} none in %{...fixVersions} , checks whether there isn't a single version "Affects version/s" in "Fix version/s". fieldValue(%{...reporter}, subtasks()) none in fieldValue(%{...reporter}, linkedIssues()) , checks whether there isn't a single sub-task reporter among linked issues reporters. [1, 2] none in [3, 4, 5] ["blue", "red"] none in ["black", "white", "green"] |
Case-ignoring Operators
The following comparison operators are applicable to STRING and STRING [] data types.
All operators ignore the case of the characters.
Operator | Meaning | Examples (all examples return true ) |
---|---|---|
=~ | equal to | "HELLO" =~ "Hello" "up" =~ "UP" ["blue", "red", "green"] =~ ["Blue", "RED", "Green"] |
!=~ | not equal to | " HELLO" !=~ "Hello" "up" !=~ "down" ("up" !=~ "UP") = false ["blue", "red"] !=~ ["Blue", "green"] ["blue", "red"] !=~ ["Red", "BLUE"] (["blue", "red", "green"] !=~ ["Blue", "RED", "Green"]) = false |
~~ | contains | "Hello World!" ~~ "world" , checks whether a string contains a substring. "A small step for a man" ~~ "STEP" , checks whether a string contains a substring. ["one", "two", "three"] ~~ ["TWO", "One"] , checks whether a string list contains all the elements of another string list. |
!~~ | doesn't contain | "Hello World!" !~~ "bye" , checks whether a string doesn't contain a substring. "A small step for a man" !~~ "big" , checks whether a string doesn't contain a substring. ["one", "two", "three"] !~~ ["Four"] , checks whether a string list doesn't contain one element of another string list. (["one", "two", "three"] !~~ ["TWO"]) = false |
in~ | is contained in | "world" in~ "Hello World!" , checks whether a substring is contained in another string. "STEP" in~ "A small step for a man" , checks whether a substring is contained in another string. ["TWO", "One"] in~ ["one", "two", "three"] , checks whether all the elements of a string list are contained in another string list. |
not in~ | isn't contained in | "bye" not in~ "Hello World!" , checks whether a substring is not contained in another string. "big" not in~ "A small step for a man" , checks whether a substring is not contained in another string. ["Four"] not in~ ["one", "two", "three"] , checks whether any of the elements of a string list are not contained in another string list. (["TWO"] not in~ ["one", "two", "three"]) = false |
any in~ | some element is in | ["blue", "violet"] any in~ ["Blue", "Red", "Green"] ["Five", "One"] any in~ ["FOUR", "FIVE", "SIX"] |
none in~ | no single element is in | ["Orange"] any in~ ["red", "blue", "green"] (["orange"] any in~ ["Red", "Orange"]) = false |
Operators and applicable data types
Below you find a comprehensive matrix of all operators and applicable data types.
Comparison Operator | BOOLEAN | NUMBER | STRING | NUMBER [] | STRING [] | ISSUE [] | MULTI |
---|---|---|---|---|---|---|---|
= | X | X | X | X | X | X | X |
!= | X | X | X | X | X | X | X |
< | - | X | X | - | - | - | - |
> | - | X | X | - | - | - | - |
<= | - | X | X | - | - | - | - |
>= | - | X | X | - | - | - | - |
~ | - | - | X | X | X | X | X |
!~ | - | - | X | X | X | X | X |
in | - | - | X | X | X | X | X |
not in | - | - | X | X | X | X | X |
any in | - | - | - | X | X | X | X |
none in | - | - | - | X | X | X | X |
=~ | - | - | X | - | X | - | - |
!=~ | - | - | X | - | X | - | - |
~~ | - | - | X | - | X | - | - |
!~~ | - | - | X | - | X | - | - |
in~ | - | - | X | - | X | - | - |
not in~ | - | - | X | - | X | - | - |
any in~ | - | - | - | - | X | - | - |
none in~ | - | - | - | - | X | - | - |
Remember | Example |
---|---|
Operators ~ , !~ , in and not in can be used for checking a single element (number or string) against a number list or a string list |
|
Operators ~ , !~ , in and not in when used with a string are useful to look for substrings in another string. |
|
Operators ~ , !~ , in and not in respect cardinality, i.e., container list must have at least the same number of elements as contained list. |
|
Operators = and != , when used for comparing lists, require to have the same elements, with the same cardinality and the same order. |
|
Operators |
A reference of all data types can be found here.
On this page