正则表达式基础篇

正则表达式必知必会
正则表达式用处:搜索与替换
简单的开始:
1.匹配单个字符:
.匹配任何一个字符(除去换行符)
\加上一个特殊字符:如\\,\d,\w,
2.匹配一组字符:
[]不匹配任何字符,自用来定义一个字符集合;如[ab]:必须匹配a或b,可用来处理大小写问题[Aa],当然也可以用\i(SAS里面的);[0-9]匹配0到9的数字,[A-Z]匹配A到Z的英文字母;[A-Za-z0-9]表示A-Z和a-z和0-9;[^0-9]表示不匹配0-9的任意数字;若要匹配[]本身,需要反斜杠\[ \]
注:-连字符是特殊的元字符,但只能用在[]之间,在[]之外只能与-匹配,因此-不需要特殊匹配。
3.使用元字符:
元字符不用做元字符时,必须\转意,如\[、 \\
元字符分为两种:(1)匹配文本比如.(2)匹配正则表达式的语法要求的如:[]
匹配空白字符:\n:换行符;\r回车符;\t制表符[Tab键];在Window操作系统中需要\r\n\r\n来匹配两条记录中的空白行,在linux\Unix中是\n\n即可
匹配数字:\b任何一个数字字符相当于[0-9];\D任何一个非数字字符相当于[^0-9]
\w任何一个字母数字字符或者下划线相当于[A-Za-z0-9_];\W任何一个非字母数字字符或者下划线相当于[^A-Za-z0-9_]
匹配空白字符:\s任何一个空白;\S任何一个非空白字符
匹配十六进制:\0
匹配八进制:\0开头
4.重复匹配
+匹配一个或多个字符
*匹配零个或多个字符
?匹配零个或一个字符
{}匹配的重复次数 如\d{0,3}:0,1,2或3个数字;\d{3,}至少重复3次及以上的数字字符
注:* +都是贪婪型字符,匹配的结果是多多益善而不是适可而止,尽可能从文本的开头匹配到结尾,有时将多个匹配结果当成一个
但*? +? {n,}?是懒惰性表示方法,写法简单,找到一个匹配的即停止(这里容易误解,见P49页)
5.位置匹配
\b单词边界:如:the cat scatterted....,匹配cat:\bcat\b,这里的\b是匹配这样一个位置,位于一个能用来构成单词的字符和一个不能用来构成单词的字符;
\D不匹配单词的边界
^匹配字符串的开头位置

7.子表达式
()是元字符,将子表达式括起来
简化重复表达:(\d{1,3}\.){3}
避免误解:19|20\d{2} 与(19|20)\d{2}意义是不同的;因为|将左右两边当成完整的两部分
子表达式的嵌套
8.回溯引用:前后一致匹配
回溯连续匹配:
如:this is is a cat;
匹配:[ ]+(\w+)[]+\1
这里的\1是模式里的第一个表达式,\2表示模式里面的第二个表达式,上述将匹配同一个单词连续两次重复出现;
注:回溯引用只能引用模式里面的子表达式,用()括起来的;

posted @ 2017-08-22 23:36  Anni爱摩天轮  阅读(230)  评论(0编辑  收藏  举报