正则表达式
1、语法
在 Java 中,\\
表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
所以,在其他的语言中(如 Perl),一个反斜杠 \
就足以具有转义的作用,而在 Java 中正则表达式中则需要有两个反斜杠才能被解析为其他语言中的转义作用。也可以简单的理解在 Java 的正则表达式中,两个 \\
代表其他语言中的一个 \
,这也就是为什么表示一位数字的正则表达式是 \\d
,而表示一个普通的反斜杠是 \\
。
System.out.print("\\"); // 输出为 \
System.out.print("\\\\"); // 输出为 \\
2、常用的正则表达式
整数或者小数
^[0-9]+\.{0,1}[0-9]{0,2}$
只能输入数字
^[0-9]*$
只能输入n位的数字
^\d{n}$
只能输入至少n位的数字
^\d{n,}$
只能输入m~n位的数字
^\d{m,n}$
只能输入零和非零开头的数字
^(0|[1-9][0-9]*)$
只能输入有两位小数的正实数
^[0-9]+(.[0-9]{2})?$
只能输入有1~3位小数的正实数
^[0-9]+(.[0-9]{1,3})?$
只能输入非零的正整数
^\+?[1-9][0-9]$
只能输入非零的负整数
^\-[1-9][]0-9″*$
只能输入长度为3的字符
^.{3}$
只能输入由26个英文字母组成的字符串
^[A-Za-z]+$
只能输入由26个大写英文字母组成的字符串
^[A-Z]+$
只能输入由26个小写英文字母组成的字符串
^[a-z]+$
只能输入由数字和26个英文字母组成的字符串
^[A-Za-z0-9]+$
只能输入由数字、26个英文字母或者下划线组成的字符串
^\w+$
验证用户密码
^[a-zA-Z]\w{5,17}$
正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$\”等字符
[^%&',;=?$\x22]+
只能输入汉字
^[\u4e00-\u9fa5]{0,}$
验证Email地址
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL
^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
验证电话号码
^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
正确格式为:”XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX”。
验证身份证号(15位或18位数字)
^\d{15}|\d{18}$
验证一年的12个月
^(0?[1-9]|1[0-2])$
正确格式为:”01″~”09″和”1″~”12″。
验证一个月的31天
^((0?[1-9])|((1|2)[0-9])|30|31)$
正确格式为:”01″~”09″和”1″~”31″。
匹配中文字符的正则表达式
[\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内)
[^\x00-\xff]
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,”aa”).length;}
匹配空行的正则表达式
\n[\s| ]*\r
匹配html标签的正则表达式
<(.*)>(.*)<\/(.*)>|<(.*)\/>
匹配首尾空格的正则表达式
(^\s*)|(\s*$)
应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
String.prototype.trim = function(){return this.replace(/(^\s*)|(\s*$)/g, “”);}