正则表达式入门经典(学习笔记八)——几个例子及解释汇总
2011-07-29 11:07
393 查看
1.不平衡的交替选择
(a|ab) 假设正则表达式引擎在a之前的位置开始匹配,它首先尝试将第一个选项与该行中的第一个字符——也就是a进行匹配。匹配成功。这样正则表达式就不会再尝试匹配第二个选项了。于是,它把当前位置移动到了刚找到的匹配项之后(位于a和b之间)的位置上。然后再重新尝试匹配,但此时不论是用a还是ab来匹配字符b,结果都不会成功。
这样的话可以修改为(ab|a)
2.检测重复的单词
\<([A-Za-z]+) \1\> 右括号后有个空格
3.插入一个单引号
(Andrew)(s)(?=\b) 找到要插入单引号的位置
4.为大数添加逗号
(?<=\d)(?=(\d\d\d)+\W) 大数后跟逗号等
(?<=\d)(?=(\d\d\d)+\b) 用词边界表示
5.电子邮件地址
^\w*(?<=\w)\.?\w+@(?=[\w\.]+\W)\w+\.\w{3,4}$
@之后,空格或者逗号等之前只能有字母或者句点
“向前查找”放在要查找的词之后——“查找到后再向前回到原位置”,.NET中称为“零宽度向前查找断言”
6.发现错误的拼写
探测模式
\b\w+\s+Training 检查Training前面的单词
star\s+T\w+g 筛选出可能拼错的Training
7.IP地址
^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|0-9)\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|0-9)$
(a|ab) 假设正则表达式引擎在a之前的位置开始匹配,它首先尝试将第一个选项与该行中的第一个字符——也就是a进行匹配。匹配成功。这样正则表达式就不会再尝试匹配第二个选项了。于是,它把当前位置移动到了刚找到的匹配项之后(位于a和b之间)的位置上。然后再重新尝试匹配,但此时不论是用a还是ab来匹配字符b,结果都不会成功。
这样的话可以修改为(ab|a)
2.检测重复的单词
\<([A-Za-z]+) \1\> 右括号后有个空格
3.插入一个单引号
(Andrew)(s)(?=\b) 找到要插入单引号的位置
4.为大数添加逗号
(?<=\d)(?=(\d\d\d)+\W) 大数后跟逗号等
(?<=\d)(?=(\d\d\d)+\b) 用词边界表示
5.电子邮件地址
^\w*(?<=\w)\.?\w+@(?=[\w\.]+\W)\w+\.\w{3,4}$
@之后,空格或者逗号等之前只能有字母或者句点
“向前查找”放在要查找的词之后——“查找到后再向前回到原位置”,.NET中称为“零宽度向前查找断言”
6.发现错误的拼写
探测模式
\b\w+\s+Training 检查Training前面的单词
star\s+T\w+g 筛选出可能拼错的Training
7.IP地址
^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|0-9)\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|0-9)$
相关文章推荐
- C++/GDI+ 学习笔记(二)——几个例子
- what's in string? c语言string类函数实现汇总 都是学习使用指针的好例子啊(算是读书摘抄和笔记吧)
- 【深度学习】笔记3_caffe自带的第一个例子,Mnist手写数字识别所使用的LeNet网络模型的详细解释
- what's in string? c语言string类函数实现汇总 觉得都是学习使用指针的好例子(算是读书摘抄和笔记吧)
- C++/GDI+ 学习笔记(二)——几个例子
- VBA学习笔记(5)-几个有用的例子
- C++/GDI+ 学习笔记(二)——几个例子
- 1、TX2学习笔记--资料汇总
- SQL Server 2005 学习笔记系列文章导航 存储过程分页的经典例子
- 学习笔记--线程的几个常用方法实例
- [原创]Ruby学习笔记(2)-简单例子
- MySQL学习笔记汇总
- javascript动画、运动算法详细解释与分析 (一、Tween 运动算法学习笔记)
- (学习笔记)Android使用SurfaceView编写“迷宫搜索”例子
- jquery学习笔记|jquery ajax小例子
- 树莓派学习笔记——常用软件汇总
- Python-OpenCV学习笔记(一):基础知识汇总
- 【汇总推荐】深度学习、自然语言处理干货笔记汇总
- 【WebGoat 学习笔记】--3.试用中出现的问题汇总及解决办法
- Cocos2d-x学习笔记(十四)CCAutoreleasePool具体解释