正则表达式入门教程

 一、引入

 
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、环视

  1. 前环视:(?=...)          如:19(?=99)--匹配后面跟着99的19
  2. 前非环视(?!...)            如:19(?!99)-- 匹配后面没有99的19
  3. 等等..... 环视概念参考: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
 
 
.

 

posted @ 2012-03-06 21:05  youryida  阅读(180)  评论(0编辑  收藏  举报