I need a RegEx expression that can extract the text inside parantheses but only if a specific text pattern is met. If more than one set of parantheses exists it should only be the text in the last set that should be looked at.
The validation rule should be 1-3 three letters in the beginning and 1-3 numbers at the end of the text inside the parantheses.
(ABC 123) Text string (DEF 456)
Result: DEF 456
(ABC 123) Text string (DEFG 123)
Result: DEFG 123
(ABC 123) Text string (DEFG ABC)
(ABC 123) Text string (123)
(ABC 123) Text string (ABC DEF 123)
Result: ABC DEF 123
This is what I have so far:
But if I use the RegEx on example 1 it will return “ABC 123” from the first set of parantheses. Also it does not support any text between the first three letters or last three digits.
Any idea on how to get around this?
@jacchr Please try the RegEx Builder.
Can you try this @jacchr
if the string contains the word string every time
@HareeshMR it does not contain the word “string” every time The text before the last set of parentheses will change every time.
Atleast you will have space before the parenthesis ?
you can use this pattern
regex101: build, test, and debug regex
Great that seems to be working. However I just found another variation of the string where the RegEx won’t work.
Text string (ABC 123) (DEF 456)
The result will then be ABC 123. How do I tweak the RexEx to always look at the last set of parentheses?
I found this pattern:
It seems to always take the last set of parantheses. However it also includes the parentheses where I only need the text inside.
Thanks - that works but now only if the string has two sets of parentheses. So now it does not work for “My string (DEF 456)”.
I tweaked the other pattern I’ve found:
However it still includes the last parenthese. Not sure how to leave the ending paranthese out.
The below regex code will satisfy all the validation rule
Plz Check it,
Thanks for your suggestions. What I need is a pattern that only returns what is shown as “result”.
Basically what I need is:
- Return what is inside the last set of parantheses
- But only if the string inside the parantheses starts with 1-3 characters and ends with 1-3 digits
- The parantheses should be left out of the result
So if the string is:
Text string (ABC 123) (DEF 456) additional text
The result returned should be:
Did you check this code ?? it’ll only get the last value
About Regular Expression takes the same data with you are expected
plz use .group function to archive the perfect result
PFA,regex.xaml (8.7 KB)
you will get a idea refer the attachment