Regex help tutorial MEGAPOST – Making your first Regex post, Reusable Regex Patterns, Regex Troubleshooting, Sample Workflow and more

THE PURPOSE OF THIS POST IS TO HELP NEW REGEX USERS :blush:

If you need help with Regex be sure to provide in your post, a Sample, the Output and Pattern (as much as you know).

CONTENTS:
Section :one: : I need a Regex Pattern ASAP! :fast_forward: - My first Regex Post :boy:
Section :two: : Regex samples that you can use! :nerd_face:
Section :three: : I need help applying regex in UiPath :raised_hand:
Section :four: : Regex Matches and Groups :people_holding_hands:
Section :five: : Learn Regex in 60 mins :green_book:
Section :six: : HELP Regex isn’t working in UiPath!!! :scream: – Regex Troubleshooting

Download and check out this REGEX DEMO for new users (it’ll show you what to do).xaml (13.0 KB)

SECTION :one: : I need a Regex Pattern ASAP! :fast_forward: - My first Regex Post :boy:

If you truly need help please provide the following AS A MINIMUM.

  1. SAMPLE - Provide a sample (or 3) of your raw text in your post (or upload a notepad file or PDF )
  2. OUTPUT - Provide the output after the raw text (bolding of the output helps also – optional )
  3. PATTERN - What is always consistent? Tell us as much as possible about the pattern of the text (example: It will ALWAYS be 2 capital letters, a space, then 4-6 numbers)

Bonus:

  • Provide as much information as possible. Every little bit helps and you will get a stronger Regex Pattern in less posts.
  • Will it change? (Capital letters, combination/amount of words/numbers, how many spaces does it have, is it consistent?)
  • Is there multiple matches or just one in your text?
  • Are you using OCR?
  • Can you use Regex in UiPath?

Regex relies heavily on finding a pattern that is constant and specific enough to match all occurrences but without false positives.

Spend 5-10 minutes making a quality post and I GUARANTEE :crossed_fingers: it will save you time in replies and you will have an answer MUCH faster from a UiPath Forums Guru - they might even give you back an actual working UiPath solution :open_mouth: (it’s a great community :white_check_mark: full of gurus :nerd_face: so save everyone some time :clock1030: and submit a quality post)

Here is an example forum post:

" Hi All

I need a regex pattern to grab the state and postcodes from the below text.

  • Sample text provided below
  • The expected output I am seeking is below:
    • RI 55924
    • VA 34075
    • AK86847
  • The pattern of the text: The State will always be two capital letters, a single space and the ZIP code will always be 5 numbers following that.* (AB 123456)

Any help would be appreciated. :slight_smile:

Thank you.

Sample text:

Dave Martin
615-555-7164
173 Main St., Springfield RI 55924
davemartin@bogusemail.com

Charles Harris
800-555-5669
969 High St., Atlantis VA 34075
charlesharris@bogusemail.com

Eric Williams
560-555-5153
806 1st St., Faketown AK 86847
laurawilliams@bogusemail.com"

End of post…

You will have a response from the UiPath community with an answer in no time! [A-Z]{2}\s[\d]{5}

Remember, Sample, Output and Pattern. SOP.

SECTION :two: : Regex samples that you can use! :nerd_face:
(I STRONGLY recommend watching this video first - Learning and Understanding Regex)

Click the hyperlinks below for the full sample text.

*This is not an exhaustive Regex list. If you are unsure if you have a robust pattern, make a post to verify.

Anchors
When to use: When you have a fixed word that wont change and need to match the string after or before.

Anchor Samples below (will grab the word John Smith):
Words in the brackets can be replaced but MUST be exact (or literal).

Name Example 1:
Sample:
Payee: John Smith

Regex pattern: (?<=Payee: ).*
Comments: Fine to use if it’s the only string on the current line.

Name Example 2:
Sample:
John Smith – Payee

Regex pattern: .*(?= - Payee)
Comments: Fine to use if it’s the only string on the current line.

Name Example 3:
Sample:
Payee - John Smith - Account

Regex pattern: (?<=Payee\s-\s).*(?=\s-\sAccount)
Comments: This will capture everything between the words “Payee – " and " – Account”. This solution should be fine to use as long the words Payee and Account are constant.

Account Numbers Example
Samples:
145-567-981
145 567 981
145.567.9815

Regex pattern: \d{3}.\d{3}.\d{3,4}
Comments: The above pattern will match 3 digits followed by anything followed by 3 digits followed by anything followed by 3 or 4 digits.

Date Examples
Samples:
19.01.2020
19-01-2020
19,1,2020

Regex Pattern: \d{1,2}.\d{1,2}.20\d{2}
Comments: This pattern will work for the next 100 years and will match all three examples above (because of the “.”)

Time Examples
Samples:
08:01
8:22
8:03;23

Regex Pattern: \d{1,2}:\d{1,2}
Comments: 1 or 2 digits separated by a “:” followed by 1 or 2 digits.

Email Examples
Email Regex can be very challenging and can change depending on domains.
Below is a sample solution but test, test, test to ensure its fit for purpose.

Samples:
JohnSmith@gmail.com.au
John.Smith@hotmail.edu.com
John.Z.Smith@Regex.is.cool.com

Regex pattern: ([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+)\b
Comments: Ensure you have tested that it will work with your email domains and so on.

SECTION :three: : I need help applying regex in UiPath :raised_hand:

Watch this 10 min video from @AndersJensen (Best YouTube Channel for UiPath in my opinion)

This is the process:

  1. You will need to first get your raw text into UiPath.
  2. Then you will need to use a ”Matches" activity.
  3. The Pattern will be the Regex Pattern/solution from the forum post.
  4. Input will be your Raw Text variable
  5. Result will be the output which is a variable type called an “IEnumerable” .

image

What is an IEnumerable?” you say, well:

  • An IEnumarable is a collection of results (like an array).
  • Even if you only have one result it will still be treated as a collection.
  • To get the result, you will need to type a digit in brackets after to reference the result and group. 0 = is the first result only, 1 = the second result:
    • VARIABLE(0).Tostring
    • VARIABLE(0).Value

Download this UiPath Regex Demo I made so you can see what to do.xaml (13.0 KB)
.



SECTION :four: : Regex Matches and Groups :people_holding_hands:
When using Regex you will always have a full match but sometimes your Regex pattern might be made up of 1 or more groups. The number of groups can be 0. Having groups may also be an intentional design (to make the pattern robust) so you can grab elements later – like the year or month separately.

Take a look at this solution for an example
image

To get Group 1:
INSERTVARIABLE(0).Groups(1).ToString

To get Match 2:
INSERTVARIABLE(0).Groups(2).ToString

To get Match 3:
INSERTVARIABLE(0).Groups(3).ToString

Then use an assign activity and update the capital letters with the variable from the Result field in the Matches Activity.

Download this UiPath Regex Demo I made so you can see what to do.xaml (13.0 KB)
.



SECTION :five: : Learn Regex in 60 mins :green_book: (and understand Regex for next time :stuck_out_tongue_winking_eye: )

To learn Regex there are a number of tutorials on YouTube but I STRONGLY recommend these videos:

To Understand and Learn Regex watch this video - 38mins:
Regular Expressions (Regex) Tutorial: How to Match Any Pattern of Text. I personally watched this video and started here. Tip : take screenshots and save them in MS Word :brain:

How to apply those learnings in UiPath watch this video - 11mins:
UiPath | Matches and Regex | Simple and Complete Tutorial. This tutorial is simple and concise. One of MANY amazing tutorials by the great @AndersJensen!

To Practice Regex, use the samples from the 1st video’s description and head over to the following sites:

Please note - the MOST compatible site with UiPath is http://regexstorm.net/tester NOT www.Regex101.com. There are differences between Regex101.com and UiPath.

Regex101.com is more popular because of the following features:

  • share\save your patterns with users on the forums. Using the “Save Regex” function (ctrl + s) in the top left of the window – like this custom save.
  • understand your regex pattern/result from the Explanation section (Red :red_circle: circled section to understand).
  • improve your pattern using the Quick Reference section (Green :green_circle: circled section) – its a great tool and I still use it regularly to refresh/brush-up.


SECTION :six: : HELP Regex isn’t working in UiPath!!! :scream: – Regex Troubleshooting
On occasion reading a PDF (or other documents) and storing it as a string will cause an error with UiPath.

UiPath will give you error messages like:

  • “Object reference not set to an instance of an object”, Or
  • “Illegal characters found in path”.’

image

image

1st step is to always triple check your Properties (Regex input, Regex Pattern and the Output).

Some Possible cause/s:

  • Possible Cause 1: One possibility is you didn’t get a match and you need to check your sample data. Is the text mandatory? Is your Regex Pattern robust? Are you using OCR?

The solution: You need to check the count of the results to a message box. To do this insert the following into a message box:
OUTPUTVARIABLE.Count.ToString
(Replace capitals with your actual Result/Output variable in the Matches Activity). Also use an IF condition to error handle your workflow (see image).


Like user:ClaytonM has suggested here in this post.

  • Possible Cause 2: Another reason is on occasion UiPath thinks there are invisible characters (whether there is or not) and can’t find a match or process because of the illegal/special characters. This can happen with a folder path also. (Please don’t ask why because I don’t know :laughing:)

The Solution: – Is simple, you must trick UiPath by “CLEANING” your variable using the replace method (Use a Replace Activity to filter/remove unwanted characters).

Check out this UiPath Regex Demo with a CLEAN STRING example.xaml (13.0 KB)

BEFORE:
DirtyVariable= Dave Martin
615-555-7164
173 Main St., Springfield RI 55924
davemartin@bogusemail.com

CleanVariable = System.Text.RegularExpressions.Regex.Replace(DirtyVariable, “[^a-z A-Z 0-9]”, “”)
image
This will replace all characters except these: (^a-z A-Z 0-9) with nothing (""). Update the brackets in the above as necessary.

AFTER:
CleanVariable = Dave Martin6155557164173 Main St Springfield RI 55924davemartinbogusemailcom

This text will now be 100% suitable for Regex. If you wanted to keep the spaces just add a “\s” to the “[ ]” brackets.
image

Some developers will clean all strings before using them.

SECRET :male_detective: BONUS SECTION: Celebrate you Regex Champion! :love_you_gesture: :man_student: :champagne:
Thanks for reading this far :blush:

Please bookmark this post, show it some support by clicking the :heart: and share it with new users.

Other MEGAPOSTs worth looking at:
Please also visit this fantastic String Manipulation MEGAPOST by user (@)Adrian_Star for everything on String manipulation. Contained are similar/simpler solutions to the replace method and more…

Feel free to message me :email: if you have a Regex problem but make sure you provide SOP as per Section :one: (Sample, Output, Pattern).
Also, Rookie UiPath Developers you REALLY need to subscribe to @AndersJensen on YouTube (here is a link to his channel) and check out his dedicated playlist for Rookies (UiPath Tutorial: The Basics for beginners). Anders has the best UiPath content on YouTube in my opinion (that’s a whole other post though).

Remember there are PLENTY of Regex Gurus :brain: on the forums! (I am simply a Regex Lover and aspiring guru :laughing:)

The gurus I see on the forums are: @supermanPunch @Palaniyappan, Pratik_Wavhal, @ppr, msan, Yoichi, bcorrea, Pradeep_Shiv, Pablito, lakshman, Arpit_Kesharwani, Anthony_Humphries and mzahid).
I can only tag 4 users in this post but just put a ‘@’ in front of the usernames… All are gurus :brain: in my book :smiley:

Hopefully you found this post helpful and the standard of Regex posts improves in the forums :blush:

Happy Automation!

Cheers
Steve
:australia:

48 Likes
Regex: Many lines with same word, grab until line with 1st occurrence
#FeatureBlog - 19.10 - Using regular expression (Regex) in the selector attributes
Extract specific data from txt file to dt
Keep value inside ()
Use regEx to find text
RegEx help - Invoice Extraction
BLOG: My name is Anders and I’m allergic to manual work
Extract the last version name of a folder as a text string
Modify text -> Find and replace text
Txt file to Excel file
Regex for URL
Get 3 different values with regex?
Split Address String without break in words
How to find a fixed starting position in PDF when the format is not fixed
Extract date from a sentence
Split from the beginning of any letter
How to dynamically extract string using regex?
How to dynamically extract string using regex?
How to extract the string values
Regex operator question
How to extract Access Code from email
How to check if a string has a certain pattern?
Extract part of specific text line
Regex from String
How can i extract many information from pdf from page 16 for example plz
Regex to test if strings exist in a string to match
Regex Expression with different format of string
Regex Issue (Any)
Splitting the large string
Extract substring from directory path between symbols
Get a part of string
String Capture
String Manupilation
How to extract year only from a string and assign it to a variable
Regex - I want to retrieve the last word or number from a sentence
Get info from PDF
Get words starting with 0
Can't get selection value from list item from pdf
Extract the next line after specific phrase
String Operation to extract Email Id from a String
Calculate a discount with REGEX
Use regex 2
Dynamic Regex Build
Trying to get data but they end with the same word (except one has more words in front of it) (Makes more sense in the post)
Get a single value from a sentence
Not able to retrieve Invoice details using Regex only
Need Help on REGEX Project
Regex to extract data between dates
RegEx for pdf US date
Email Body Manipulation
Filter out a link from a message
How to build or what are the basics in building regular expressions?
How to build or what are the basics in building regular expressions?
How to extract specific part from a string using specific separator and add those string in an array/collection and loop through it
How to identify specific string in a mail body with Regular expressions?
I need to scrap data from a text file which looks like junk[but it is actually data extracted from OCR ID card].Now I want to transform it to structured Excel file with the Name,ID card number,Nationality etc..Plz help me in this
Get Emp_name and Emp_id from array string
Find upper letter regex
How do use RegEx Matches and Replace
Regix help
How to extract multiple data from PDF
How to extract multiple data from PDF
Read PDF text for new Invoice template PDF
Extract Product Name and Price from PDF without using OCR
How to replace wildcards with regular expressions
Getting Data from Text file
Find the text adjacent to a string and extract the value
ERROR : Source: Assign "Message: Object reference not set to an instance of an object."
Regex without duplicate in UiPath
How can i remove all the links and extra spaces from a email body
Regex Expression to find city and zip from address
Regex Expression to find city and zip from address
Регулярные выражения
How get specific word from email body
Regex Expression to find city and zip from address
How to split the String variable
RegEx pattern ********** not contain any character or number
Regex replacing
How to extract particular data from a multiple pdf that have multiple pages using anchor base,find element,get text?
Regex Value
Please guide me about read text file
How to split multiple row t single row using Regex
RegEx to extract all data between two patterns
Extract currency value using regular expressions
Additional RegEx Help
Extract date like strings from long string
Regex Date
How to use Split or use Regex if I want to Split a list of text by "."
Parsing texts to get names, claim numbers, date etc
Text to Left/Right, is it possible to use a new line as separator?
dd-dd/MM/yyyy date type problem
How to read specific patterns of string (by following an order) - Telegram
One variable and cut into several variables by comma
How to put Regex capturing groups into uipath
Extract only characters from string
How to execute a list of commands in cmd
Regex not woring
Indexof Position Notepad
Extract line from pdf with regex
Get the numbers in a string
How to split large string to get specific element
Regex to remove ID tags
Regex capture a word blow a specific word / regex next line
Need To Extract Auth Token from Email and then Enter it into Application
How to spilt a variable with double spacing?
How to remove specific texts from Get Text
Extract line from pdf with regex
Matches activity throws object reference error when using a regex pattern
Regex to find the 2nd occurance
Ressources for UI Path - Twitter accounts, blogs etc
Regexr formula NEEDS MAJOR HELP PLEASE :( anyone -NEEDS URGENT HELP!
Get the text after a certain word
HOW TO SPLIT A LINK

@Steven_McKeering Really very helpful :hugs:

2 Likes

@Steven_McKeering
thanks for this valuable post. Bringing the SOP Pattern into the picture is a big plus and lets accelerate the answering activities to the upcoming RegEx questions here in the forum.

:+1:

3 Likes

@Steven_McKeering

This is great! This will really help the community.

2 Likes

Wow
This is phenomenal and many will find it helpful.

Cheers @Steven_McKeering

3 Likes

Nicely done! Regexes can be difficult for people with and without developer backgrounds, and this is very helpful.

1 Like

Hi @Steven_McKeering

I found this really great. It is very helpful for all of us along with beginners. Really appreciate. :innocent: :hugs: :love_you_gesture:

Happy Automation :raised_hands:

Best Regards
Er Pratik Wavhal :robot::man_technologist:t4: :computer:

1 Like

@Steven_McKeering

Nice post, It’s really useful

Thanks

1 Like

@Steven_McKeering Awesome work. This post is a Gift to the Community now. All the required methods are presented in the best way possible to understand.

Yes, The SOP Pattern will bring a huge difference now and it will help the Community to provide a Solution really fast.

Thank you for providing such Great Informative Posts.
:smiley:

1 Like

@Steven_McKeering

Great post! This helps Increasing quality of regex beginner’s posts.

1 Like

@Steven_McKeering
Awesome work! Let me move it to the official FAQ section! I love it.

7 Likes

@Steven_McKeering
Thank you. Just the SOP alone is a great help but you also give a lot of good practical tools to begin right away. Good job.

1 Like

@Steven_McKeering
Great Work buddy, This will help a lot!
Thank You

1 Like

@Steven_McKeering

Awesome work :clap: :clap: It’s really helpful to us. I bookmarked this post and will share with other community members if they face any issues or queries related to RegEx.

3 Likes

Hey @Steven_McKeering

This is amazing work bro… im sure this will be super helpful for the guys here who look for regex solutions.

Thank you so much for putting it up and for all your amazing efforts my friend… this is super cool work… i just bookmarked it too so I can easily access…

Keep it up man!!!

2 Likes

Its a wow article!! Cheers @Steven_McKeering

1 Like

Wow, amazing work @Steven_McKeering You are the best! I believe excellent Regex (and Excel/VBA) skills will bring you very far as an RPA developer.

2 Likes

Firstly, thank you everyone for your AMAZING :star_struck: response and support! :blush:

The secondary goal of this post was to make the forum ‘gurus’ lives easier when responding to Regex forum posts. Time will tell whether this was achieved :crossed_fingers:

I have made many edits (50+) to the post at this stage to try and improve it a little bit. Hopefully I can add a few more examples that people find friendly. Your suggestions are always welcome.

  • Thank you to Pablito and @bcorrea for updating the category post/tags.
  • Big thank you again to Pablito for the adding the hyperlinks in the contents section. :raised_hands:
  • Thanks @msan for the detailed feedback :sunglasses:

I hope one day I will be able to contribute another valuable post to this great community on a different topic. I appreciate your support.

Happy Automation!

P.S - Send new users to @AndersJensen’s YouTube Channel. Anders is building a dedicated playlist for a full UiPath Beginners Tutorial.

7 Likes

That is one hellava post, thank you VERY MUCH!!!

3 Likes

@Steven_McKeering, Whoa!

This is awesome dude, thank you.

2 Likes