Regular Expressions (Visual Studio)
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

Regular Expressions (Visual Studio) 

Regular expressions are a concise and flexible notation for finding and replacing patterns of text. A specific set of regular expressions can be used in the Find what field of the Visual Studio Find and Replace Window.

To enable the use of regular expressions in the Find what field during Quick Find, Find in Files, Quick Replace, or Replace in Files operations, select the Use option under Find Options and choose Regular expressions.

The triangular Expression Builder button next to the Find what field then becomes available. Click this button to display a list of the most commonly used regular expressions. When you choose any item from the Expression Builder, it is inserted into the Find what string.


There are syntax differences between the regular expressions that can be used in Find what strings and those that are valid in .NET Framework programming. For example, in Find and Replace, the braces notation {} is used for tagged expressions. So the expression zo{1} matches all occurrences of zo followed by the tag 1, as in Alonzo1 and Gonzo1. But within the .NET Framework, the notation {} is used for quantifiers. So the expression zo{1} matches all occurrences of z followed by exactly one o, as in zone but not in zoo.

Here are the regular expressions available in the Expression Builder.

Expression Syntax Description

Any character


Matches any single character except a line break.

Zero or more


Matches zero or more occurrences of the preceding expression, making all possible matches.

One or more


Matches at least one occurrence of the preceding expression.

Beginning of line


Anchors the match string to the beginning of a line.

End of line


Anchors the match string to the end of a line.

Beginning of word


Matches only when a word begins at this point in the text.

End of word


Matches only when a word ends at this point in the text.

Line break


Matches a platform-independent line break. In a Replace expression, inserts a line break.

Any one character in the set


Matches any one of the characters within the []. To specify a range of characters, list the starting and ending character separated by a dash (-), as in [a-z].

Any one character not in the set


Matches any character not in the set of characters following the ^.



Matches either the expression before or the one after the OR symbol (|). Mostly used within a group. For example, (sponge|mud) bath matches "sponge bath" and "mud bath."



Matches the character that follows the backslash (\) as a literal. This allows you to find the characters used in regular expression notation, such as { and ^. For example, \^ Searches for the ^ character.

Tagged expression


Matches text tagged with the enclosed expression.

C/C++ Identifier


Matches the expression ([a-zA-Z_$][a-zA-Z0-9_$]*).

Quoted string


Matches the expression (("[^"]*")|('[^']*')).

Space or Tab


Matches either space or tab characters.



Matches the expression ([0-9]+).

The list of all regular expressions that are valid in Find and Replace operations is longer than can be displayed in the Expression Builder. You can also insert any of the following regular expressions into a Find what string:

Expression Syntax Description

Minimal — zero or more


Matches zero or more occurrences of the preceding expression, matching as few characters as possible.

Minimal — one or more


Matches one or more occurrences of the preceding expression, matching as few characters as possible.

Repeat n times


Matches n occurrences of the preceding expression. For example, [0-9]^4 matches any 4-digit sequence.



Allows you to group a set of expressions together. If you want to search for two different expressions in a single search, you can use the Grouping expression to combine them.

For example, if you want to search for - [a-z][1-3] or - [1-10][a-z], you would combine them: ([a-z][1-3]) | ([1-10][a-z]).

nth tagged text


In a Find or Replace expression, indicates the text matched by the nth tagged expression, where n is a number from 1 to 9.

In a Replace expression, \0 inserts the entire matched text.

Right-justified field


In a Replace expression, right-justifies the nth tagged expression in a field at least w characters wide.

Left-justified field


In a Replace expression, left-justifies the nth tagged expression in a field at least w characters wide.

Prevent match


Prevents a match when X appears at this point in the expression. For example, real~(ity) matches the "real" in "realty" and "really," but not the "real" in "reality."

Alphanumeric character


Matches the expression ([a-zA-Z0-9]).

Alphabetic character


Matches the expression ([a-zA-Z]).

Decimal digit


Matches the expression ([0-9]).

Hexadecimal digit


Matches the expression ([0-9a-fA-F]+).

Rational number


Matches the expression (([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+)).

Alphabetic string


Matches the expression ([a-zA-Z]+).



Unicode U+001B.



Unicode U+0007.



Unicode U+0008.



Matches a tab character, Unicode U+0009.

Unicode character

\x#### or \u####

Matches a character given by Unicode value where #### is hexadecimal digits. You can specify a character outside the Basic Multilingual Plane (that is, a surrogate) with the ISO 10646 code point or with two Unicode code points giving the values of the surrogate pair.

The following table lists the syntax for matching by standard Unicode character properties. The two-letter abbreviation is the same as listed in the Unicode character properties database. These may be specified as part of a character set. For example, the expression [:Nd:Nl:No] matches any kind of digit.

Expression Syntax Description

Uppercase letter


Matches any one capital letter. For example, :Luhe matches "The" but not "the".

Lowercase letter


Matches any one lower case letter. For example, :Llhe matches "the" but not "The".

Title case letter


Matches characters that combine an uppercase letter with a lowercase letter, such as Nj and Dz.

Modifier letter


Matches letters or punctuation, such as commas, cross accents, and double prime, used to indicate modifications to the preceding letter.

Other letter


Matches other letters, such as gothic letter ahsa.

Decimal digit


Matches decimal digits such as 0-9 and their full-width equivalents.

Letter digit


Matches letter digits such as roman numerals and ideographic number zero.

Other digit


Matches other digits such as old italic number one.

Open punctuation


Matches opening punctuation such as open brackets and braces.

Close punctuation


Matches closing punctuation such as closing brackets and braces.

Initial quote punctuation


Matches initial double quotation marks.

Final quote punctuation


Matches single quotation marks and ending double quotation marks.

Dash punctuation


Matches the dash mark.

Connector punctuation


Matches the underscore or underline mark.

Other punctuation


Matches (,), ?, ", !, @, #, %, &, *, \, (:), (;), ', and /.

Space separator


Matches blanks.

Line separator


Matches the Unicode character U+2028.

Paragraph separator


Matches the Unicode character U+2029.

Non-spacing mark


Matches non-spacing marks.

Combining mark


Matches combining marks.

Enclosing mark


Matches enclosing marks.

Math symbol


Matches +, =, ~, |, <, and >.

Currency symbol


Matches $ and other currency symbols.

Modifier symbol


Matches modifier symbols such as circumflex accent, grave accent, and macron.

Other symbol


Matches other symbols, such as the copyright sign, pilcrow sign, and the degree sign.

Other control


Matches Unicode control characters such as TAB and NEWLINE.

Other format


Formatting control character such as the bi-directional control characters.



Matches one half of a surrogate pair.

Other private-use


Matches any character from the private-use area.

Other not assigned


Matches characters that do not map to a Unicode character.

In addition to the standard Unicode character properties, the following additional properties may be specified as part of a character set.

Expression Syntax Description



Matches any one character. For example, :Alhe matches words such as "The", "then", and "reached".



Matches any one number or digit.



Matches any one punctuation mark, such as ?, @, ', and so on.

White space


Matches all types of white space, including publishing and ideographic spaces.



Matches characters from right-to-left scripts such as Arabic and Hebrew.



Matches Korean Hangul and combining Jamos.



Matches hiragana characters.



Matches katakana characters.



Matches ideographic characters, such as Han and Kanji.

© 2016 Microsoft