A regular expression is a special text string for describing a search pattern. You can think of regular expressions as wildcards on steroids. You are probably familiar with wildcard notations such as *.txt to find all text files in a file manager. The regex equivalent is .*\.txt.
But you can do much more with regular expressions. In a text editor like EditPad Pro or a specialized text processing tool like PowerGREP, you could use the regular expression \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}\b to search for an email address. Any email address, to be exact. A very similar regular expression can be used by a programmer to check if the user entered a properly formatted email address. In just one line of code, whether that code is written in Perl, PHP, Java, a .NET language or a multitude of other languages.
Since “regular expressions” is a mouthful, you will usually find the term abbreviated as “regex” or “regexp”. We prefer “regex”, since it can be easily pluralized as “regexes”.
I know. The regex to match any email address looks quite intimidating. But RegexBuddy makes the regex syntax crystal clear. Moving the mouse over the regex or the descriptions below will highlight corresponding parts. RegexBuddy does the same while you create a regular expression or analyze a regex written by somebody else.
With a bit of practice and assistance from RegexBuddy, you will soon become proficient at crafting regular expressions. Oh, and you definitely do not need to be a programmer to take advantage of regular expressions! (Read on below.)
\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b
Basically, a regular expression is a pattern describing a certain amount of text. That makes them ideally suited for searching, text processing and data validation.
Searching with regular expressions enables you to get results with just one search instead of many searches. Searching for the word “separate” and all of its common misspellings is easy with the regex s[ae]p[ae]r[ae]te. If you forgot the phone number of your friend who moved to Anguilla, search your past correspondence for \b1?[-( ]*264[-) ]*\d{3}[- ]*\d{4}\b and get a handy list of all phone numbers in area code 264, regardless of the notation style used.
Update large amounts of data by searching and replacing with regular expressions. The benefit of using regular expressions to update data is that with a single regex pattern, you can dynamically update a variety of data. E.g. search for (copyright +(©|\(c\)|©) +\d{4})( *[-,] *\d{4})* and replace with \1-2020 to update all copyright statements to 2020, regardless of the style of copyright symbol and the current copyright year. “copyright (c) 1996-2007” is replaced with “copyright (c) 1996-2020”, while “Copyright © 2009” is replaced with “Copyright © 2009-2020”, etc. This takes only a few minutes to set up and a dozen seconds to run with RegexBuddy’s built-in GREP tool. Imagine making those changes by hand.