正则表达式

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 ;

参考文章:

本文为自己知识点搜索整理,若有侵权麻烦留言告知,可删除本文章。谢谢(* ̄︶ ̄)

posted @ 2018-03-24 19:45  IT记录  阅读(200)  评论(0编辑  收藏  举报