Regular Expression to extract a substring?
Here's the problem:
You have an arbitrary length string (it could be a 2000 character string or more) that you have to extract a substring from. The easiest way I know is using RegEx. The hardest way I know is using an activity with when/loops.
I'm not too particularly fond of creating a whole new activity with different when/loops when I have to look for a completely different substring, or when I'm looking for the same substring in a completely different formatted string.
The only out-of-the-box RegEx I can find in 7.1.x is from String (Pega-RulesEngine) in expression builder, however they don't extract substrings with RegEx.
so I'm left with using a Java step with the code below.
String mydata = tools.getParamValue("Input");
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(tools.getParamValue("Regex"));
java.util.regex.Matcher matcher = pattern.matcher(mydata);
if (matcher.find())
{
tools.putParamValue("Output" ,PropertyInfo.TYPE_TEXT, matcher.group(0));
}
So basically you just put this java step in an activity, and have the string parameters: Input, Regex, Output.
You do property set on Input and Regex, and extract a string to Output by running the activity.
Any features like this in Pega without using Java steps?
On a side-note: The projects I'm working is migrating to 7.3.1 soon.
Hi everyone,
It turns out for simple strings, you don't need regex. You can use substring functions for that. For large complicated strings, you definitely need Regex. Otherwise it becomes too difficult to implement an activity to extract a substring.
I still couldn't find any out of the box regex functions for extracting a substring. The only way to this is still the Java steps.