正则表达式查找

2018-04-25  本文已影响0人  COKIDCC

基本字符

语法 描述 示例
. 匹配任何单个字符
\ 转义用
[] 匹配字符为[]里面的东西 [abcd]
- 连续字符简写 a-z [0-9]
^ 取非 [^0-9]除了0-9
+ 想要匹配的字符多次重复--至少一次 [0-9]+
* 想要匹配的字符多次重复--可以为0次 [0-9]*
? 想要匹配的字符有一次或零次,等价于{0,1} https?://
{} 前面字符或字符集合重复次数 {3}, {1,3}, {3, }
*? 懒惰元字符,匹配尽量少的字符防止过度匹配 < B ></ B> and < B > < / B >
+? 同上 如果不使用?将匹配< B>< /B> and < B></ B>
{n, }? 同行 使用?将匹配< B>< /B> < B></ B>
^ 匹配一个字符串的开头
$ 匹配一个字符串的结尾
(?m) 把行分隔符当作字符串分隔符看待(类似于^),必须出现在开头的位置,许多正则表达式不支持 (?m)^\s* //.*$匹配代码中的注释//
() 子表达式,将被视为一个独立的元素 (\d{1,3}\ .){3}\d{1,3}匹配ip地址
| 19|20 19或20
\1 \2 回溯引用,代表前边第一个(第二个)子表达式,javaScript用&代替\
?<= 向后查找操作符,javaScript不支持 (?<=\$)[0-9.]+只要找到 $但不显示
?= 向前查找操作符。?=后面的东西找到就行了但是不显示它,术语就是”不消费“它。写在子表达式中 (?=:)只找到:但是不显示它
?<! 负向后查找 \b(?<!\$)\d+\b匹配不以$开头的数值
?! 负向前查找
\r\n\r\n 匹配回车和换行--匹配一个空行

特殊含义字符

语法 描述 示例
\d 等价于[0-9]
\D 等价于[ ^0-9 ]
\w 字母数字下划线[a-zA-Z0-9_]
\W 字母数字下划线[ ^a-zA-Z0-9_ ]
\s 任何一个空白字符 等价于[\f\n\r\t\v]
\S 任何一个非空白字符 等价于[ ^ \f\n\r\t\v]
\b 匹配一个单词的开头或结尾 \bcat\b 只匹配cat 不匹配scatter
\B 不匹配一个单词的边界 \B-\B 匹配 -
\E 放在结束位置,结束\L或\U转换
\l 把下一个字符转换成小写
\L 把\L到\E之间的字符全部转换成小写
\u 把下一个字符转换成大写
\U 把\U到\E之间的字符全部转换成大写

\f换页符 \v 垂直制表符

常用正则表达式

用途 表达式
用户名为3-16位数字英文_- 字符组合 /^[a-z0-9_-]{3,16}$/
密码 /^[a-z0-9_-]{6,18}$/
URL /^(https?://)?([\da-z.-]+).([a-z.]{2,6})([/\w .-])/?$/
电子邮箱 /^([a-z0-9_.-]+)@([\da-z.-]+).([a-z.]{2,6})$/
校验基本日期格式 var reg1 = /^\d{4}(-|/|.)\d{1,2}\1\d{1,2}$/; <br />var reg2 = /((\d{4}|\d{2})(-|/|.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$/;
校验密码强度 密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。<br />var reg = /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/;
校验中文 var reg = /^[\\u4e00-\\u9fa5]{0,}$/;
由数字、26个英文字母或下划线组成的字符串 var reg = /^\\w+$/;
校验E-Mail 地址 var reg =/[\w!#$%&'*+/=?^_`{ }-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?/;
校验身份证号码 var reg = /^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$/;
“yyyy-mm-dd” 格式的日期校验,已考虑平闰年。 var reg = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
金额校验,精确到2位小数。 var reg = /^[0-9]+(.[0-9]{2})?$/;
校验手机号 var reg = /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/;
判断IE的版本 var reg = /^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$/;
校验IP-v4地址 var reg = /\\b(?:(?: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]?)\\b/;
校验IP-v6地址 var reg = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/;
检查URL的前缀 if (!s.match(/^[a-zA-Z]+:///)) { s = 'http://' + s; }
提取URL链接 var reg = /^(f|ht){1}(tp|tps)://([\w-]+.)+[\w-]+(/[\w- ./?%&=]*)?/;
文件路径及扩展名校验 var reg = /([a-zA-Z]\\:|\\\\)\\\\([\\]+\\)*[^\/:*?"<>|]+\\.txt(l)?$/;
提取Color Hex Codes var reg = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
提取网页图片 var reg = /\\< *[img][^\\>]*[src] *= *[\\"']{0,1}([^\"'\ >]*)/;
提取页面超链接 var reg = /(<a\\s*(?!.*\\brel=)[^>]*)(href="https?://)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))["]+)"((?!.*\\brel=)[>]*)(?:[^>]*)>/;
查找CSS属性 var reg = /^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}/;
抽取注释 var reg = //;
上一篇下一篇

猜你喜欢

热点阅读