正则表达式快速参考

数据来自微软MSDN

June 2014 , Copyright 2014 Microsoft. All rights reserved.

single characters

Use To match any character
[set] In that set
[^set] Not in that set
[a–z] In the a-z range
[^a–z] Not in the a-z range
. Any except \n (new line)
\char Escaped special character

control characters

Use To match Unicode
\t Horizontal tab \u0009
\v Vertical tab \u000B
\b Backspace \u0008
\e Escape \u001B
\r Carriage return \u000D
\f Form feed \u000C
\n New line \u000A
\a Bell (alarm) \u0007
\c char ASCII control character

Non-ascii codes

Use To match  character with
\octal 2-3 digit octal character code
\x hex 2-digit hex character code
\u hex 4-digit hex character code

 

character classes

Use To match character
\p{ctgry} In that Unicode category or block
\P{ctgry} Not in that Unicode category or block
\w Word character
\W Non-word character
\d Decimal digit
\D Not a decimal digit
\s White-space character
\S Non-white-space char

quantifiers

Greedy Lazy Matches
* *? 0 or more times
+ +? 1 or more times
? ?? 0 or 1 time
{n} {n}? Exactly n times
{n,} {n,}? At least n times
{n,m} {n,m}? From n to m times

anchors

Use To specify position
^ At start of string or line
\A At start of string
\z At end of string
\Z At end (or before \n at end) of string
$ At end (or before \n at end) of string or line
\G Where previous match ended
\b On word boundary
\B Not on word boundary

 

groups

Use To define
(exp) Indexed group
(?<name>exp) Named group
(?<name1-name2>exp) Balancing group
(?:exp) Noncapturing group
(?=exp) Zero-width positive lookahead
(?!exp) Zero-width negative lookahead
(?<=exp) Zero-width positive lookbehind
(?<!exp) Zero-width negative lookbehind
(?>exp) Non-backtracking (greedy)

inline options

Option Effect on match
i Case-insensitive
m Multiline mode
n Explicit (named)
s Single-line mode
x Ignore white space

 

Use To
(?imnsx-imnsx) Set or disable the specified options
(?imnsx-imnsx:exp) Set or disable the specified options within the expression

backreferences

Use To match
\n Indexed group
\k<name> Named group

alternation

Use To match
a |b Either a or b
(?(exp)
yes | no)
yes if exp is matched
no if exp isn’t matched
(?(name)
yes | no)
yes if name is matched
no if name isn’t matched

substitution

Use To substitute
$n Substring matched by group number n
${name} Substring matched by group name
$$ Literal $ character
$& Copy of whole match
$` Text before the match
$’ Text after the match
$+ Last captured group
$_ Entire input string

comments

Use To
(?# comment) Add inline comment
# Add x-mode comment

For detailed information and examples, see http://aka.ms/regex

To test your regular expressions, see http://regexlib.com/RETester.aspx

留下评论