Visual Studio uses to find and replace text. Regular expression examples
The following table contains some regular expression characters, operators, constructs, and pattern examples. For a more complete reference, see .
An example regular expression that combines some of the operators and constructs to match a hexadecimal number is \b0[xX]([0-9a-fA-F]+)\b. This expression matches "0xc67f" but not "0xc67g".
Tip
In Windows operating systems, most lines end in "\r\n" (a carriage return followed by a new line). These characters aren't visible but are present in the editor and passed to the .NET regular expression service.
Capture groups and replacement patterns
A capture group delineates a subexpression of a regular expression and captures a substring of an input string. You can use captured groups within the regular expression itself (for example, to look for a repeated word), or in a replacement pattern. For detailed information, see . To create a numbered capture group, surround the subexpression with parentheses in the regular expression pattern. Captures are numbered automatically from left to right based on the position of the opening parenthesis in the regular expression. To access the captured group:
within the regular expression: Use \number. For example, \1 in the regular expression (\w+)\s\1 references the first capture group (\w+). in a replacement pattern: Use $number. For example, the grouped regular expression (\d)([a-z]) defines two groups: the first group contains a single decimal digit, and the second group contains a single character between a and z. The expression finds four matches in the following string: 1a 2b 3c 4d. The replacement string z$1 references the first group only ($1), and converts the string to z1 z2 z3 z4. The following image shows a regular expression (\w+)\s\1 and a replacement string $1. Both the regular expression and the replacement pattern reference the first capture group that's automatically numbered 1. When you choose Replace all in the Quick Replace dialog box in Visual Studio, repeated words are removed from the text.
Tip
Make sure the Use Regular Expressions button is selected in the Quick Replace dialog box.
Named capture groups
Instead of relying on the automatic numbering of a capture group, you can give it a name. The syntax for a named capture group is (?<name>subexpression).
Named capture groups, like numbered capture groups, can be used within the regular expression itself or in a replacement pattern. To access the named capture group:
within the regular expression: Use \k<name>. For example, \k<repeated> in the regular expression (?<repeated>\w+)\s\k<repeated> references the capture group that's named repeated and whose subexpression is \w+. in a replacement pattern: Use ${name}. For example, ${repeated}.
As an example, the following image shows a regular expression (?<repeated>\w+)\s\k<repeated> and a replacement string ${repeated}. Both the regular expression and the replacement pattern reference the capture group named repeated. When you choose Replace all in the Quick Replace dialog box in Visual Studio, repeated words are removed from the text.
Tip
Make sure the Use Regular Expressions button is selected in the Quick Replace dialog box.
For more information about named capture groups, see . For more information about regular expressions that are used in replacement patterns, see .