正则表达式入门教程
一、引入
DW正则表达式批量修改字符串:
二、各种元字符含义及作用
1、匹配符
- \b 单词边界
- \d 数字
- \s 空白字符
- \w 字母数字下划线
- . 任意非换行字符
举例: 053288657932--0532\d\d\d\d\d\d\d\d → 0532\d{8}
2、限定符
- {m} 匹配m次
- {m,n} 匹配m-n次
- {m,} 匹配至少m次
- ? 匹配0-1次
- * 匹配0-n次
- + 匹配1-n次
举例:匹配5-6位qq号码:\d{5,6}
第一位不能为0:[1-9]\d{4,5}
3、选择符
- [...] 匹配其中一个(如[abcd]、[a-d]、[1-9])
- [^m] 匹配除m外的任意字符
- | 匹配左侧或右侧
举例:济南或青岛电话号码--0531\d{8}|0532\d{8} 或:(0531|0532)\d{8}
4、组合符
- ( ) 如:电信号码--(133|153|189)\d{8}
5、转义符
- \. \* 等等
举例:匹配形如www.xxxx.com的网站--www\.[a-z]+\.com
6、定位符
说明:用于规定匹配模式在目标字符串中出现的位置,例如开头和结尾.
- ^ 匹配开始字符,置于表达式最前
- $ 匹配结束字符,置于表达式最后
举例: ^on--可以匹配on、one但是无法匹配everyone
验证是否全为数字:^\d+$
7、环视
- 前环视:(?=...) 如:19(?=99)--匹配后面跟着99的19
- 前非环视(?!...) 如:19(?!99)-- 匹配后面没有99的19
- 等等..... 环视概念参考:https://www.cnblogs.com/Zjmainstay/p/regexp-lookaround.html
8、分组重用
\1 \2 ... \9 可以重用()的匹配 如:"1222333".match(/(\d)\1*/g) —— ["1", "222", "333"]
三、综合小例子
邮箱验证:(^[a-z]\w+@\w+(\.[a-z]{2,3}){1,2}$)
- doitslowly@163.com
- doitslowly@yahoo.com.cn
By CSDN DoItSlowly 2011.12.25
转载请注明出处:http://www.cnblogs.com/youryida 欢迎留言或qq交流(1140215489)