正则表达式

回复 收藏
本帖最后由 ChamPly 于 2015-5-22 10:44 编辑

ChamPly的博客

.        表示除\n之外的任意单个字符
[]       字符的筛选,筛选中间的一个,如果加入^,表示不出现里面的字符
|       表示或地意思(优先级非常低a|bcd匹配a或者bcd,不匹配acd
()       改变运算的优先级,提取组
*       限定符,表示前面的表达式出现0次或多次
+       限定符,表示前边的表达式必须出现1次或者多次,至少出现1
?       限定符,表示前边的表达式必须出现0次或者1次,最多出现1次;终止贪婪模式
{n}    限定符,限定前面表达式必须出现n
{n}         限定符,限定前边的表达式至少出现n
{nm}     限定符,限定前边的表达式至少出现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-05-22 09:08 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: