Expand my Community achievements bar.

SOLVED

Regex help for SAINT Rule Builder

Avatar

Level 1

Currently have strings coming in with two formats. Some strings end with the character “|” and other strings do not. For example, one value might is “ush|park-map|” and another value is “ush|theme-parks”. The goal is to remove the last pipe “|” from the string IF the string ends with a “|”.

In the SAINT Rule Builder, I was able to remove the last pipe “|” from strings that ended with a pipe “|”. However in the final output, the strings that did NOT end in a pipe had “**Unmatched**” as the final value (1st screenshot below).  The question is how can you return the original/default value if the string doesn’t meet the rule criteria (aka ending with a “|”)?  

 

We'd greatly appreciate your help, thanks!

 

David

Screen Shot 2020-07-07 at 4.32.56 PM.pngScreen Shot 2020-07-07 at 4.33.57 PM.png

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

The correct regex is (.+)(\|)?$

 

Notice the ? at the end of (\|) which stand of zero or one of pipe

View solution in original post

6 Replies

Avatar

Level 4

I'm not very knowledgeable about regex, but I think you can adapt this to work for your use case.

^((.+)\_(.+)\_(.+)\_(.+)\_(.+)\_(.+)|(.+)\_(.+)\_(.+)\_(.+)\_(.+))$

In this case $2$8 mapped to the first field (depending on if there are 4 or 5 underscores.  You could shift and shorten this for the pipe.

Avatar

Community Advisor
SO basically you are saying there is either zero or one of pipe at the end like a? Zero or one of a

Avatar

Correct answer by
Community Advisor

The correct regex is (.+)(\|)?$

 

Notice the ? at the end of (\|) which stand of zero or one of pipe

Avatar

Community Advisor and Adobe Champion

Dear Dabressler,

You just need to stack the conditions properly. Below you go:

PratheepArunRaj_0-1594800666769.png

And the test results are as below:

PratheepArunRaj_1-1594800803515.png

I Hope, this is what you are expecting.

Thank You, Arun.

Avatar

Level 10
Do any of the answers below answer your initial question? If so, can you select one of them as the correct answer? If none of the answers already provided answer your question, can you provide additional information to better help the community solve your question?