正则表达式
1. 每个正则表达式必须包含在斜杠中
- ^:匹配输入的开始位置。
- $:匹配输入的结尾。
- * :匹配前一个字符零次或几次。例如,"ufo*"可以匹配"u"、"uoo"。
- +:匹配前一个字符一次或多次。例如,"ufo+"可以匹配"ufoo",但不匹配"uf"。
- ?:匹配前一个字符零次或一次。例如,"a?ve?"可以匹配"never"中的"ve"。
- . :匹配换行符以外的任何字符。若" . "后面没有+或*,只能匹配单个字符。
- (pattern):与模式匹配并记住匹配。如要匹配单位增量为幂次方,像1000,1000000,100000000......正则可写成 " /1(,000)+/ " ;常与竖线选择符一起使用,如a(?:cat|dog),匹配文本" a cat " 与 " a dog " 。
- x|y:匹配x或y。例如"z|ufo"可匹配"z"或"ufo"。"(z|u)fo"匹配"zfo"或"ufo"。
- {n} :n为非负的整数。匹配恰好n次。
- {n,} :n为非负的整数。匹配至少n次。
- {n,m}:m和n为非负的整数。匹配至少n次,至多m次。
- [xyz] :一个字符集。与括号中字符的其中之一匹配。例如像匹配美国拼写gray与英国拼写grey,正则为 " /gr[ae]y/ "。
- [^xyz] :一个否定的字符集。匹配不在此括号中的任何字符。例如,"[^abc]"可以匹配"plain"中的"p".
- [0-9] :匹配0-9之间的任意1个数字。
- [a-z] :表示某个范围内的字符。与指定区间内的任何字符匹配。
- [A-Z] :表示某个范围内的字符。与指定区间内的任何字符匹配。
- [^a-z] :否定的字符区间。与不在指定区间内的字符匹配。例如,"[a-z]"与不在"a"到"z"之间的任何字符匹配。
- \b :与单词的边界匹配,即单词与空格之间的位置。例如,"er\b"与"never"中的"er"匹配,但是不匹配"verb"中的"er"。
- \B :与非单词边界匹配。"ea*r\B"与"neverearly"中的"ear"匹配。
- \d :与一个数字字符匹配。等价于[0-9]。
- \D :与非数字的字符匹配。等价于[^0-9]。
- \f :与分页符匹配。
- \n :与换行符字符匹配。
- \r :与回车字符匹配。
- \s :与任何白字符匹配,包括空格、制表符、分页符等。等价于"[\f\n\r\t\v]"。
- \S :与任何非空白的字符匹配。等价于"[^\f\n\r\t\v]"。
- \t :与制表符匹配。
- \v :与垂直制表符匹配。
- \w :与任何单词字符匹配,包括下划线。等价于"[A-Za-z0-9_]"。
- \W:与任何非单词字符匹配。等价于"[^A-Za-z0-9_]"。
- \num:匹配num个,其中num为一个正整数。引用回到记住的匹配。例如,"(.)\1"匹配两个连续的相同的字符。
- \xn:匹配n,其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。例如,"\x41"匹配"A"。"\x041"等价于"\x04"和"1"。允许在正则表达式中使用ASCII码。
- \n :匹配n,其中n是一个八进制换码值。八进制换码值必须是1,2或3个数字长。例如,"\11"和"\011"都与一个制表符匹配。"\0011"等价于"\001"与"1"。八进制换码值不得超过256。否则,只有前两个字符被视为表达式的一部分。允许在正则表达式中使用ASCII码。
2. 文本匹配小语法规则
- 贪婪匹配 " .* " ,懒惰匹配 " .*? " 。
- 万能公式
- 懒惰匹配:适用于单行的内容取出;若需跨行,用第二个公式。
- ([\s\S]*?) :无论是否为空白都匹配。
3. 一般修饰符
- /g :完成全局的global匹配,当使用replace()函数时,用该修饰符替所有匹配,而不只是一个。
- /m :启用多行模式,在这种模式下插入符号 ^ , $ 在目标字符新行前和新行后匹配。
- /i:使用正则表达式不区分大小。
4.在javaScript中使用正则
- .test() 告诉参数是否与正则表达式匹配,匹配则为true否则为false。
document.write(/cats/i.test("cats are funny.i like cats")+"<br>");/* 结果为:true*/
- .replace() :存在第二个参数来替代文本的字符串。
document.write("cats are funny.i like cats".replace(/cats/gi,"dogs")+"<br>");/* 结果为:dogs are funny.i like dogs*/
5. PHP中使用正则
- preg_match()
- preg_match_all()
- preg_reeplace()
6. 常用正则语句
- 匹配Email地址 :\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* ;
- 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ ;
- 匹配密码是否合法(密码正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线):^[a-zA-Z]\w{5,17}$ ;
- 匹配手机号码(校验手机号码:必须以数字开头,除数字外,可含有“-” 或空格):1[3,4,5,8]\d[\s,-]?\d{4}[\s,-]?\d{4}+ ;
- 匹配中文字符:[\u4e00-\u9fa5] ;
- 匹配空白行(可以用来删除空白行):\n\s*\r ;
参考文章:
本文为自己知识点搜索整理,若有侵权麻烦留言告知,可删除本文章。谢谢(* ̄︶ ̄)