正则表达式入门经典(学习笔记八)——几个例子及解释汇总

来源:互联网 发布:基因组数据分析 编辑:程序博客网 时间:2024/06/08 03:40

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)$