In computing, a regular expression provides a concise and flexible means to "match" (specify and recognize) strings of text, such as particular characters, words, or patterns of characters. Common abbreviations for "regular expression" include regex and regexp.
The concept of regular expressions was first popularized by utilities provided by Unix distributions, in particular the editor ed and the filter grep. A regular expression is written in a formal language that can be interpreted by a regular expression processor, which is a program that either serves as a parser generator or examines text and identifies parts that match the provided specification. Historically, the concept of regular expressions is associated with Kleene's formalism of regular sets, introduced in the 1950s.
The following are examples of specifications which can be expressed as a regular expression:
- The sequence of characters "car" appearing consecutively, such as in "car", "cartoon", or "bicarbonate"
- The word "car" when it appears as an isolated word (and delimited from other words, typically through whitespace characters)
- The word "car" when preceded by the word "motor" (and separated by a named delimiter, or multiple.)
Regular expressions are used by many text editors, utilities, and programming languages to search and manipulate text based on patterns. Some of these languages, including Perl, Ruby, AWK, and Tcl, integrate regular expressions into the syntax of the core language itself. Other programming languages like .NET languages, Java, and Python instead provide regular expressions through standard libraries. For yet other languages, such as Object Pascal (Delphi) and C and C++, non-core libraries are available (however, version C++11 provides regular expressions in its Standard Libraries).
As an example of the syntax, the regular expression \bex
can be used to search for all instances of the string "ex" occurring after "word boundaries". Thus \bex
will find the matching string "ex" in two possible locations, (1) at the beginning of words, and (2) between two characters in a string, where the first is not a word character and the second is a word character. For instance, in the string "Texts for experts", \bex
matches the "ex" in "experts" but not in "Texts" (because the "ex" occurs inside a word and not immediately after a word boundary).
Many modern computing systems provide wildcard characters in matching filenames from a file system. This is a core capability of many command-line shells and is also known as globbing. Wildcards differ from regular expressions in generally expressing only limited forms of patterns.
Read more about Regular Expression: History, Basic Concepts, Formal Language Theory, Syntax, Patterns For Non-regular Languages, Fuzzy Regular Expressions, Implementations and Running Times, Unicode, Uses, Examples
Famous quotes containing the words regular and/or expression:
“This is the frost coming out of the ground; this is Spring. It precedes the green and flowery spring, as mythology precedes regular poetry. I know of nothing more purgative of winter fumes and indigestions. It convinces me that Earth is still in her swaddling-clothes, and stretches forth baby fingers on every side.”
—Henry David Thoreau (18171862)
“Fashion is the most intense expression of the phenomenon of neomania, which has grown ever since the birth of capitalism. Neomania assumes that purchasing the new is the same as acquiring value.... If the purchase of a new garment coincides with the wearing out of an old one, then obviously there is no fashion. If a garment is worn beyond the moment of its natural replacement, there is pauperization. Fashion flourishes on surplus, when someone buys more than he or she needs.”
—Stephen Bayley (b. 1951)