Substitute variable in regex expression

I have a mapper with json input like this:

$effective_code = “2138-HCOM-0546-01”
$course_code =“2138-HCOM-0546-01-12345|2138-HCOM-0546-EMR-12456”

I want an expression that will match “2138-HCOM-0546-01-12345” out of course code.

I don’t understand in a Snaplogic Mapper, how I can substitute the $effective_code into my regex match to execute as:

$COURSE_CODE.match(/2138-HCOM-0546-01-\d{5,}/g)

more generally:

$COURSE_CODE.match(/$effective_code-\d{5,}/g)

Anyone know how to do this?

The argument to match() takes a string that will be interpreted as a regular expression. So, you should be able to do:

$COURSE_CODE.match($effective_code + "-\\d{5,}")

@tstack, thanks, that worked. I find the documentation on match() a little confusing:

https://docs-snaplogic.atlassian.net/wiki/spaces/SD/pages/1439357/String+Functions+and+Properties#StringFunctionsandProperties-match

Mostly that it doesn’t return a String, it returns a RegExpResult, and that it can take either a quoted regex or a typical /regex/, maybe this could be clarified in the wiki?

Thanks for your help.

Mike

I’ve forwarded your request to the Doc team.

1 Like