理论篇:
. 任意一个字符
* 0或多个
+ 1或多个
? 0或1个
d 一个数字 s 代表空字符 w 代表字母数字及下划线 一个单词的边界 D W S B 跟前面的相反
^ 以什么开头 $ 以什么结尾 此处注意 单行模式与全局模式 具体深入学习
预搜索(零宽断言)
(?=)
(?<=)
(?<!)
(?!)
反向引用: 1 2 的意义 重复前一个具体匹配到的字符
如: ([a-z]+)1
实战篇:
固定电话或手机:(1[34568]d{9})| ((0d{2,3}-)?d{7,8})
email: ([w-]+)@([w-]+)(.[a-zA-Z]{2,4}){1,2}
匹配***结尾的,如Ing 结尾的 : [a-z]+(?=ing)
匹配*** 开头的,如_开头的: (?<=_)[a-z]+
匹配重复的字符串的如 toto dodo : ([a-z]+)1
下载regexBuddy 小工具,可以方便的本地调试 正则表达式。
测试内容如下:
gogo to to toto dodo goto bibi testing _test
goinggoing doingdoing
going eating speaking talking sleeping
speak go talk
testing
<b> sdfs</b> _ta
_btes _sfde __+))((**<>aade>>><<<_woef abc
_tes
<p> sdfdsfsiwi</b>
<html>ww.baid..com</html>
<test>difiw</doc>
<co>color</co>
dtest@163.com
22333321@qq.com
adfa_liwe@yahoo.com.cn
afdfs-li@ssdf.org
ajdfal_test@ss.cn
jfoo &^*^% *&^%
010-88889999
0735-7777664
0321-45678912
13188777766
18644433334
<td width="190">test</td>
<td width="190">中关村二街2</td>