четверг, 13 января 2011 г.

C# Regular Expressions Cheat Sheet

Cheat sheet for C# regular expressions metacharacters, operators, quantifiers etc

Character
Description
\
Marks the next character as either a special character or escapes a literal. For example, "n" matches the character "n". "\n" matches a newline character. The sequence "\\" matches "\" and "\(" matches "(".
Note: double quotes may be escaped by doubling them: ""
^Depending on whether the MultiLine option is set, matches the position before the first character in a line, or the first character in the string.
$Depending on whether the MultiLine option is set, matches the position after the last character in a line, or the last character in the string.
*Matches the preceding character zero or more times. For example, "zo*" matches either "z" or "zoo".
+Matches the preceding character one or more times. For example, "zo+" matches "zoo" but not "z".
?Matches the preceding character zero or one time. For example, "a?ve?" matches the "ve" in "never".
.Matches any single character except a newline character.
(pattern)Matches pattern and remembers the match. The matched substring can be retrieved from the resulting Matches collection, using Item [0]...[n]. To match parentheses characters ( ), use "\(" or "\)".
(?pattern)Matches pattern and gives the match a name.
(?:pattern)A non-capturing group
(?=...)A positive lookahead
(?!...)A negative lookahead
(?<=...)A positive lookbehind .
(?A negative lookbehind .
x|yMatches either x or y. For example, "z|wood" matches "z" or "wood". "(z|w)oo" matches "zoo" or "wood".
{n}n is a non-negative integer. Matches exactly n times. For example, "o{2}" does not match the "o" in "Bob," but matches the first two o's in "foooood".
{n,}n is a non-negative integer. Matches at least n times. For example, "o{2,}" does not match the "o" in "Bob" and matches all the o's in "foooood." "o{1,}" is equivalent to "o+". "o{0,}" is equivalent to "o*".
{n,m}m and n are non-negative integers. Matches at least n and at most m times. For example, "o{1,3}" matches the first three o's in "fooooood." "o{0,1}" is equivalent to "o?".
[xyz]A character set. Matches any one of the enclosed characters. For example, "[abc]" matches the "a" in "plain".
[^xyz]A negative character set. Matches any character not enclosed. For example, "[^abc]" matches the "p" in "plain".
[a-z]A range of characters. Matches any character in the specified range. For example, "[a-z]" matches any lowercase alphabetic character in the range "a" through "z".
[^m-z]A negative range characters. Matches any character not in the specified range. For example, "[m-z]" matches any character not in the range "m" through "z".
\bMatches a word boundary, that is, the position between a word and a space. For example, "er\b" matches the "er" in "never" but not the "er" in "verb".
\BMatches a non-word boundary. "ea*r\B" matches the "ear" in "never early".
\dMatches a digit character. Equivalent to [0-9].
\DMatches a non-digit character. Equivalent to [^0-9].
\fMatches a form-feed character.
\kA back-reference to a named group.
\nMatches a newline character.
\rMatches a carriage return character.
\sMatches any white space including space, tab, form-feed, etc. Equivalent to "[ \f\n\r\t\v]".
\SMatches any nonwhite space character. Equivalent to "[^ \f\n\r\t\v]".
\tMatches a tab character.
\vMatches a vertical tab character.
\wMatches any word character including underscore. Equivalent to "[A-Za-z0-9_]".
\WMatches any non-word character. Equivalent to "[^A-Za-z0-9_]".
\numMatches num, where num is a positive integer. A reference back to remembered matches. For example, "(.)\1" matches two consecutive identical characters.
\nMatches n, where n is an octal escape value. Octal escape values must be 1, 2, or 3 digits long. For example, "\11" and "\011" both match a tab character. "\0011" is the equivalent of "\001" & "1". Octal escape values must not exceed 256. If they do, only the first two digits comprise the expression. Allows ASCII codes to be used in regular expressions.
\xnMatches n, where n is a hexadecimal escape value. Hexadecimal escape values must be exactly two digits long. For example, "\x41" matches "A". "\x041" is equivalent to "\x04" & "1". Allows ASCII codes to be used in regular expressions.
\unMatches a Unicode character expressed in hexadecimal notation with exactly four numeric digits. "\u0200" matches a space character.
\AMatches the position before the first character in a string. Not affected by the MultiLine setting
\ZMatches the position after the last character of a string. Not affected by the MultiLine setting.
\GSpecifies that the matches must be consecutive, without any intervening non-matching characters.

Комментариев нет: