What Is a Regular Expression, Regexp, or Regex?

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”.

      
Only US$ 39.95
Windows XP, Vista, 7, 8, 8.1, 10, and 11
100% satisfied or money back

RegexBuddy Makes Regular Expressions Easy

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

  • Assert position at a word boundary (position preceded or followed—but not both—by an ASCII letter, digit, or underscore)
  • Match a single character present in the list below
    • Between one and unlimited times, as many times as possible, giving back as needed (greedy)
    • A character in the range between “A” and “Z” (case insensitive)
    • A character in the range between “0” and “9”
    • A single character from the list “._%+”
    • The literal character “-”
  • Match the character “@” literally
  • Match a single character present in the list below
    • Between one and unlimited times, as many times as possible, giving back as needed (greedy)
    • A character in the range between “A” and “Z” (case insensitive)
    • A character in the range between “0” and “9”
    • The literal character “.”
    • The literal character “-”
  • Match the character “.” literally
  • Match a single character in the range between “A” and “Z” (case insensitive)
    • Between 2 and unlimited times, as many times as possible, giving back as needed (greedy)
    • Assert position at a word boundary (position preceded or followed—but not both—by an ASCII letter, digit, or underscore)
    “As a freelancer who gets asked to solve lots of different problems, software like RegexBuddy are truly amazing. It’s very flexibility and really well designed. I’m improving, and make better use of, my regular expressions when writing JS or MySQL queries thanks to the way the software teaches and guides you to the correct solution.”
    — Russell Coombe
      6 January 2023, United Kingdom
    “I am really enjoying using your program, and before this, I hated regular expressions. Now, I’ve gone over to the dark side, and I love them.”
    — Tim Gallagher
      2 March 2006, Kansas, USA

    Save Time and Effort with Regexes

    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.

    Let RegexBuddy Make Regex Easy for You