正则表达式总结

.        表示除\n之外的任意单个字符

[]       字符的筛选,筛选中间的一个,如果加入^,表示不出现里面的字符

|       表示或地意思(优先级非常低a|bcd匹配a或者bcd,不匹配acd

()       改变运算的优先级,提取组

*       限定符,表示前面的表达式出现0次或多次

+       限定符,表示前边的表达式必须出现1次或者多次,至少出现1次

?       限定符,表示前边的表达式必须出现0次或者1次,最多出现1次;终止贪婪模式

{n}    限定符,限定前面表达式必须出现n次

{n,}         限定符,限定前边的表达式至少出现n次

{n,m}     限定符,限定前边的表达式至少出现n次,最多出现m次

^       表示的是字符串的开头【不在[]中】

$       表示字符串的结尾

\d     表示[0-9]

\D     表示[^0-9]

\s      表示所有那些空白符,不可见字符(换行符,制表符等)

\S      表示除了\s之外的所有字符

\w    表示[0-9a-zA-Z_]字母,数字,下划线

\W    表示除了\w之外的所有其他字符

\b     表示单词的边界(断言,只判断,不匹配)

 

 

表示任意单个字符:

[\s\S]

[\w\W]

[\d\D]

 

^a|b$:表示以a开头或者是以b结尾(因为|的优先级很低)

 

判断一个字符串是不是身份证号码:

1.       长度为15位或者18位的字符串,首位不能是0

2.       如果是15位,则全部是数字

3.       如果是18位,则前17为都是数字,末尾可能是数字也可能是X(大小写都有)

方法一:^[1-9]([0-9]{13} | [0-9]{16})[0-9Xx]$

方法二:^[1-9][0-9]{14}([0-9]{2}[0-9Xx])?$

 

判断字符串是否为正确的国内电话号码,不考虑分机:

1.       区号:3位或4位

2.       电话:7位或8位

3.       区号与电话中间的-可以没有,也可以出现1次

4.       或者所有的5位号码也是合法的

5.       所有的手机号码11位也是合法的

方法:^((\d{3,4}-?\d{7,8})|(\d{5}))$

         注:由于前面包含了11位的电话号码,所以不用再填写

 2015年5月22日

by:champly 

你可能感兴趣的:(编程)