正则笔记

.      匹配除了换行符以外的任意字符

常用的限定符
*      匹配数量 *前边的内容可以连续重复出现任意次(可能是0次)
+      匹配重复1次或更多次
?      重复零次或一次
{n}    重复n次
{n,}   重复n次或更多次
{n,m} 重复n到m次

\b \b 表示单词的开头或者结尾 匹配某个单词用
\B \B(B大写) 匹配不是单词开头或结束的位置

\d     匹配任意的数字 {2} ({8})的意思是前面\d必须连续重复匹配2次(8次)。
\D(D大写)     匹配任意非数字的字符

\s     匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等
\S(S大写)     匹配任意不是空白符的字符

\w     匹配字母或数字或下划线或汉字等。
\W(W大写)     匹配任意不是字母,数字,下划线,汉字的字符

^      匹配字符串的开始
       用到^和$后 整个字符串都要用^$中间的来匹配
       有些正则表达式处理工具还有一个处理多行的选项。如果选中了这个选项,^和$的意义就变成了      匹配行的开始处和结束处。
$      匹配字符串的结束
如果你想查找元字符本身的话 必须使用\来取消这些字符的特殊意义 \.和\*还有\\

[ ] 匹配括号里的任意一个匹配的 可以指定范围 如[0-9a-zA-Z]
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

替换指的是有几种规则,如果满足其中任意一种规则都应该当成匹配具体方法是用|把不同的规则分隔开
使用替换时,顺序是很重要的

分组 用小括号来指定子表达式(也叫做分组)
分组语法
   捕获
(exp)             匹配exp,并捕获文本到自动命名的组里
(?<name>exp)      匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp)           匹配exp,不捕获匹配的文本,也不给此分组分配组号
   零宽断言
(?=exp)           匹配exp前面的位置 比如\b\w+(?=ing\b),匹配以ing结尾的单词的前面部分
(?<=exp)          匹配exp后面的位置 比如(?<=\bre)\w+\b会匹配以re开头的单词的后半部分
(?!exp)           匹配后面跟的不是exp的位置
(?<!exp)          匹配前面不是exp的位置
   注释
(?#comment)       这种类型的组不对正则表达式的处理产生任何影响,用于提供注释让人阅读

posted @ 2008-08-10 18:30  shijiesoft  阅读(124)  评论(0编辑  收藏  举报