Regular expressions (regex) are a powerful tool when working with Working with dimension rule results. There are plenty of tutorials and references available on internet, but below are some common scenarios and how to solve them assuming basic knowledge of regex.

More powerful pattern matching

Contains specific pattern

When exactly matches -[0-9]{3}$
=> Ends with three numbers after a dash, e.g. "Brand-874"

When exactly matches \$..-....-...\$
=> Between literal $ characters a id matching, e.g. "Remarketing $AX-1345-BE$" 

Shorthand "or"

When exactly matches cpm|cpc|cnv
=> Contains "cpm" or "cpc" or "cnv".

This is more concise and faster that the equivalent regex .*(cpm|cpc|cnv).* or ^.*(cpm|cpc|cnv).*$. To require exactly (instead of contains)  ^(cpm|cpc|cnv)$ is needed instead. Another alternative is c(pm|pc|nv) would have the same effect but it not as readable.

Extracting / Capturing parts of a value

Funnel can use capture groups - the expressions in parentheses "()" - and use it in further handling

Extract query parameter

When exactly matches utm_campaign=([^&]+), Then is regex match capture group 1
=> Extract non empty utm_campaign parameter from an url 

So for instance the value "https://my.site.com/shop?utm_campaign=MyCampaign&utm_source=mail" will capture "MyCampaign" in the first group.

Extract parts with separator

When exactly matches ^([^_]+)_([^_]+)_([^_]+)
=> Extract first 3 parts with a _  separator

E.g. "{Ad Category}_{Campaign Type}_{Target}_perhaps-other-details" with "Then regex match capture group 2" will result in "{Campaign Type}".  [^_]  means not the literal separator character "_"  and +  is one or many times. Note that the simpler  ^(.*)_(.*)_(.*) will not be as fast and is not as specific as the last group will capture all remaining characters.

Did this answer your question?