From: http://www.diybl.com/course/3_program/shell/shelljs/200862/119742.html
A regular expression is a text mode consisting of common characters (such as characters A to Z) and special characters (such as metacharacters. This mode describes one or more strings to be matched when searching the text subject. A regular expression is used as a template to match a character pattern with the searched string.
Mark the next character as a special character, a literal character, a back reference, or an octal escape character. For example, 'n' matches the character "N ". ''Matches a line break. The sequence ''matches" "and" ("matches "(".
^
Matches the start position of the input string.
$
Matches the end position of the input string.
*
Matches the previous subexpression zero or multiple times. For example, Zo * can match "Z" and "Zoo ". * Is equivalent to {0 ,}.
+
Match the previous subexpression once or multiple times. For example, 'Zo + 'can match "zo" and "Zoo", but cannot match "Z ". + Is equivalent to {1 ,}.
?
Match the previous subexpression zero or once. For example, "Do (ES )? "Can match" do "in" do "or" does ".? It is equivalent to {0, 1 }.
{N}
N is a non-negative integer. Match n times. For example, 'O {2} 'cannot match 'O' in "Bob", but can match two o in "food.
{N ,}
N is a non-negative integer. Match at least N times. For example, 'O {2,} 'cannot match 'O' in "Bob", but can match all o in "foooood. 'O {1,} 'is equivalent to 'o + '. 'O {0,} 'is equivalent to 'o *'.
{N, m}
Both m and n are non-negative integers, where n <= m. Match at least N times and at most m times. "O {1, 3}" will match the first three o in "fooooood. 'O {0, 1} 'is equivalent to 'o? '. Note that there must be no space between a comma and two numbers.
?
When this character is followed by any other delimiter (*, + ,?, The matching mode after {n}, {n ,}, {n, m}) is not greedy. The non-Greedy mode matches as few searched strings as possible, while the default greedy mode matches as many searched strings as possible. For example, for strings "oooo", 'O ++? 'Will match a single "O", and 'O +' will match all 'O '.
.
Matches any single character. To match any character including '', use a pattern like.
(Pattern)
Match pattern and obtain this match. The obtained match can be obtained from the generated matches set. The submatches set is used in VBScript, and $0… is used in Visual Basic Scripting Edition... $9 attribute. To match parentheses, use '(' or ')'.
(? : Pattern)
Matches pattern but does not get the matching result. That is to say, this is a non-get match and is not stored for future use. This is useful when you use the "or" character (|) to combine each part of a pattern. For example, 'industr (? : Y | ies) is a simpler expression than 'industry | industries.
(? = Pattern)
Forward pre-query: matches the search string at the beginning of any string that matches the pattern. This is a non-get match, that is, the match does not need to be obtained for future use. For example, 'windows (? = 95 | 98 | nt | 2000) 'can match "Windows" in "Windows 2000", but cannot match "Windows" in "Windows 3.1 ". Pre-query does not consume characters, that is, after a match occurs, the next matching search starts immediately after the last match, instead of starting after the pre-query characters.
(?! Pattern)
Negative pre-query: match the search string at the start of any string that does not match negative lookahead matches the search string at any point where a string not matching pattern. This is a non-get match, that is, the match does not need to be obtained for future use. For example, 'windows (?! 95 | 98 | nt | 2000) 'can match "Windows" in "Windows 3.1", but cannot match "Windows" in "Windows 2000 ". Pre-query does not consume characters, that is, after a match occurs, the next matching search starts immediately after the last match, instead of starting after the pre-query characters.
X | y
Match X or Y. For example, 'z | food' can match "Z" or "food ". '(Z | f) Ood' matches "zood" or "food ".
[Xyz]
Character Set combination. Match any character in it. For example, '[ABC]' can match 'A' in "plain '.
[^ XYZ]
Negative value character set combination. Match any character not included. For example, '[^ ABC]' can match 'p' in "plain '.
[A-Z]
Character range. Matches any character in the specified range. For example, '[A-Z]' can match any lowercase letter in the range of 'A' to 'Z.
[^ A-Z]
Negative character range. Matches any character that is not within the specified range. For example, '[^ A-Z]' can match any character that is not in the range of 'A' to 'Z.
Match A Word boundary, that is, the position between a word and a space. For example, 'er 'can match 'er' in "never", but cannot match 'er 'in "verb '.
B
Match non-word boundary. 'Erb' can match 'er' in "verb", but cannot match 'er' in "never '.
CX
Match the control characters specified by X. For example, CM matches a control-M or carriage return character. The value of X must be either a A-Z or a-Z. Otherwise, C is treated as an original 'C' character.
D
Match a numeric character. It is equivalent to [0-9].
D
Match a non-numeric character. It is equivalent to [^ 0-9].
F
Match a form feed. It is equivalent to x0c and Cl.
Match A linefeed. It is equivalent to x0a and CJ.
Match a carriage return. It is equivalent to x0d and CM.
S
Matches any blank characters, including spaces, tabs, and page breaks. It is equivalent to [f v].
S
Match any non-blank characters. It is equivalent to [^ f v].
Match a tab. It is equivalent to x09 and CI.
V
Match a vertical tab. It is equivalent to x0b and CK.
W
Match any word characters that contain underscores. It is equivalent to '[A-Za-z0-9 _]'.
W
Match any non-word characters. It is equivalent to '[^ A-Za-z0-9 _]'.
XN
Match n, where N is the hexadecimal escape value. The hexadecimal escape value must be determined by the length of two numbers. For example, 'x41' matches "". 'X041' is equivalent to 'x04 '& "1 ". The regular expression can use ASCII encoding ..
Um
Matches num, where num is a positive integer. References to the obtained matching. For example, '(.) 1' matches two consecutive identical characters.
Identifies an octal escape value or a backward reference. If at least N subexpressions are obtained before, n is a back reference. Otherwise, if n is an octal digit (0-7), n is an octal escape value.
M
Identifies an octal escape value or a backward reference. If there are at least is preceded by at least nm obtained subexpressions before m, then nm is backward reference. If at least N records are obtained before m, n is a backward reference followed by M. If none of the preceding conditions are met, if n and m are Octal numbers (0-7), M will match the octal escape value nm.
ML
If n is an octal number (0-3) and M and l are Octal numbers (0-7), the octal escape value NML is matched.
UN
Match n, where n is a Unicode character represented by four hexadecimal numbers. For example, u00a9 matches the copyright symbol (?).
Article Source: http://www.diybl.com/course/3_program/shell/shelljs/200862/119742.html