The way to learn regular expressions

 

Complete set of expressions

character describe
\ Marks the next character as a special character, or a literal character, or a backreference, or an octal escape. For example, " n" matches the character " n". " \n" matches a newline character. The serial " \\" matches " \" and " \(" matches " (".
^ Matches the starting position of the input string. If the Multiline property of the RegExp object is set, ^ also matches the position after " \n" or " \r".
$ Matches the end of the input string. If the Multiline property of the RegExp object is set, $ also matches the position before " \n" or " \r".
* Matches the preceding subexpression zero or more times. For example, zo* can match " z" as well as " zoo". * Equivalent to {0,}.
+ Matches the preceding subexpression one or more times. For example, " zo+" can match " zo" and " zoo", but not " z". + is equivalent to {1,}.
? Matches the preceding subexpression zero or one time. For example, " do(es)?" can match " " in " does" or " ". ? is equivalent to {0,1}.doesdo
{n} n is a non-negative integer. Match a certain number of n times. For example, " o{2}" cannot match " Bob" in " o", but can match foodtwo o's in " ".
{n,} n is a non-negative integer. Match at least n times. For example, " o{2,}" cannot match " Bob" in " o", but can match fooooodall o's in " ". " 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. For example, " o{1,3}" will match foooooodthe first three o's in " ". " o{0,1}" is equivalent to " o?". Note that there can be no spaces between the comma and the two numbers.
? When the character immediately follows any one of the other qualifiers (*,+,?, { n }, { n ,}, { n , m }), the matching pattern is non-greedy. The non-greedy mode matches as little of the searched string as possible, while the default greedy mode matches as much of the searched string as possible. For example, for the string " oooo", " o+?" will match a single " o", and " o+" will match all " o".
. Matches \nany single character except " ". To match \nany character including " ", use (.|\n)a pattern like " ".
(pattern) Match pattern and get that match. The retrieved matches can be obtained from the resulting Matches collection, using the SubMatches collection in VBScript and the $0…$9 properties in JScript. To match parenthesis characters, use " \(" or " \)".
(?:pattern) Matches the pattern but does not get the result of the match, that is, it is a non-getting match and is not stored for later use. This is useful when using the or character " (|)" to combine parts of a pattern. For example, " industr(?:y|ies)" is a industry|industriesmore abbreviated expression than " ".
(?=pattern) Positive positive lookahead matches the lookup string at the beginning of any string matching pattern. This is a non-acquisition match, that is, the match does not need to be acquired for later use. For example, " Windows(?=95|98|NT|2000)" can match " Windows2000" in " Windows", but not " Windows3.1" in " Windows". Lookahead consumes no characters, that is, after a match occurs, the search for the next match begins immediately after the last match, not after the character containing the lookahead.
(?!pattern) Forward negative lookahead, which matches the lookup string at the beginning of any string that does not match pattern. This is a non-acquisition match, that is, the match does not need to be acquired for later use. For example, " Windows(?!95|98|NT|2000)" can match " Windows3.1" in " Windows", but not " Windows2000" in " Windows". Lookahead consumes no characters, that is, after a match occurs, the search for the next match begins immediately after the last match, not after the character containing the lookahead
(?<=pattern) Reverse positive pre-check is similar to positive positive pre-check, but in the opposite direction. For example, " (?<=95|98|NT|2000)Windows" can match " 2000Windows" in " Windows", but not " 3.1Windows" in " Windows".
(?<!pattern) The reverse negative pre-check is similar to the forward negative pre-check, but in the opposite direction. For example, " (?<!95|98|NT|2000)Windows" can match " 3.1Windows" in " Windows", but not " 2000Windows" in " Windows".
x|y matches x or y. For example, " z|food" can match " z" or " food". " (z|f)ood" matches " zood" or " food".
[xyz] character collection. Matches any one of the included characters. For example, " [abc]" can match " plain" in " a".
[^xyz] A collection of negative characters. Matches any character not included. For example, " [^abc]" can match " plain" in " p".
[a-z] character range. Matches any character in the specified range. For example, " [a-z]" can match any lowercase alphabetic character in the range " a" to " ".z
[^a-z] Negative character range. Matches any arbitrary character not in the specified range. For example, " [^a-z]" can match any character that is not in the range " a" to " z".
\b Matches a word boundary, that is, the position between a word and a space. For example, " er\b" can match " never" in " er", but not " verb" in " er".
\B 匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
\cx 匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。
\d 匹配一个数字字符。等价于[0-9]。
\D 匹配一个非数字字符。等价于[^0-9]。
\f 匹配一个换页符。等价于\x0c和\cL。
\n 匹配一个换行符。等价于\x0a和\cJ。
\r 匹配一个回车符。等价于\x0d和\cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于[^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于\x09和\cI。
\v 匹配一个垂直制表符。等价于\x0b和\cK。
\w 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
\W 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
\xn 匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。“\x041”则等价于“\x04&1”。正则表达式中可以使用ASCII编码。.
\num 匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,“(.)\1”匹配两个连续的相同字符。
\n 标识一个八进制转义值或一个向后引用。如果\n之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。
\nm 标识一个八进制转义值或一个向后引用。如果\nm之前至少有nm个获得子表达式,则nm为向后引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若nm均为八进制数字(0-7),则\nm将匹配八进制转义值nm
\nml 如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。
\un 匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。

 

常用正则表达式

用户名 /^[a-z0-9_-]{3,16}$/
密码 /^[a-z0-9_-]{6,18}$/
十六进制值 /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
电子邮箱 /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
IP 地址 /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
HTML 标签 /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/
删除代码\\注释 (?<!http:|\S)//.*$
匹配所有的小写字母 [a-z]
匹配所有的大写字母 [A-Z]td>
匹配所有的字母 [a-zA-Z]td>
匹配所有的数字 [0-9]td>
匹配所有的数字,句号和减号 [0-9\.\-]  
匹配所有的白字符 [ \f\r\t\n]  
Unicode编码中的汉字范围 /^[\u2E80-\u9FFF]+$/

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324973742&siteId=291194637