\d 代表 [0-9]
\l 代表 [a-z]
\u 代表 [A-Z]
\a 代表 [A-Za-z]
\w 代表 [A-Za-z0-9_]
匹配中文字符:
[\\u4e00-\\u9fa5]
说明:貌似 vim 中这个不好使 :(
匹配双字节字符(包括汉字在内):
[^\x00-\xff]
匹配空白行的正则表达式:
\n\s*\r
匹配 HTML 标记的正则表达式:
<(\S*?)[^>]*>.*?</\1>\|<.*? />
说明:仅能匹配一部分,对于复杂的嵌套标记无能为力
匹配首尾空白字符的正则表达式:
首 ^\s*
尾 \s*$
匹配Email地址的正则表达式:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 或者 [\w-]\+(\.[\w-]\+)*@[\w-]\+(\.[\w-]\+)\+
匹配网址URL的正则表达式:
\(\l\|\u\)\+://[^\s]* 或者 \(\l\|\u\)\+://(\w\+(-\w\+)*)(\.(\w\+(-\w\+)*))*(\?\S*)?
匹配帐号是否合法(字母开头,5-16字节,允许字母数字下划线):
\(\l\|\u\)\w\{4,15}
匹配国内固定电话号码:
\d\{3,4}-\d\{7,8}
匹配腾讯QQ号:
[1-9]\d\{4,}
说明:腾讯 QQ 号从 10000 开始
匹配国内邮政编码:
[1-9]\d\{5}(?!\d)
匹配身份证号:
\d\{15}\|\d\{18}\|\d\{17}[xX]
匹配ip地址:
\d+\.\d+\.\d+\.\d+
匹配特定数字(这里全不允许 0 打头,如果允许的话,需要调整一下):
非负整数 [1-9]\d*\|0
正整数 [1-9]\d*
非正整数 -[1-9]\d*\|0
负整数 -[1-9]\d*
整数 -?[1-9]\d*
非负浮点数 \d\+(\.\d\+)? 或者 [1-9]\d*\.\d*\|0\.\d*[1-9]\d*\|0?\.0+\|0
正浮点数 ((\d\+\.\d*[1-9]\d*)\|(\d*[1-9]\d*\.\d\+)\|(\d*[1-9]\d*)) 或者 [1-9]\d*\.\d*\|0\.\d*[1-9]\d*
非正浮点数 ((-\d\+(\.\d\+)?)\|(0\+(\.0\+)?)) 或者 (-([1-9]\d*\.\d*\|0\.\d*[1-9]\d*))\|0?\.0+\|0
负浮点数 (-((\d\+\.\d*[1-9]\d*)\|(\d*[1-9]\d*\.\d\+)\|(\d*[1-9]\d*))) 或者 -([1-9]\d*\.\d*\|0\.\d*[1-9]\d*)
浮点数 (-?\d\+)(\.\d\+)? 或者 -?([1-9]\d*\.\d*\|0\.\d*[1-9]\d*\|0?\.0+\|0)
匹配特定字符串:
由英文字母组成的字符串 \a\+
由大写英文字母组成的字符串 \u\+
由小写英文字母组成的字符串 \l\+
由数字和英文字母组成的字符串 \(\l\|\u\|\d\)\+
由数字、英文字母和下划线组成的字符串 \w\+
特殊匹配(前跟某模式,后跟某模式,前不跟某模式,后不跟某模式)
后跟bar的foo foo\(bar\)\@=
后不跟bar的foo foo\(bar\)\@!
前跟bar的foo \(bar\)\@<=foo
前不跟bar的foo \(bar\)\@<!foo
实际应用中的示例:
"^[2-9][0-9][0-9][0-9][0-9][0-9]$" //YYYYMM 的日期验证
"/^[A-Za-z0-9]+$/" //只能为数字和字母
"/^[\w\-]+$/" //只能为字母,数字,_,-
"/^[0-9]+([.]{1}[0-9]{1,2})?$/" //金额验证
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email地址