标签:结果 line 字符集 单词 regular 3.1 文本 表示 允许
笔记说明: 在本笔记里 所有正则表达式 都嵌套在 【】 (中文字符里)
目录
正则表达式 (regular expression ,简称 regex)。
正则表达式 用在 搜索 和 替换 。
定义: 一些用来匹配和处理文本的字符串。 (字符串 ====》 用来匹配和处理文本)
2.1匹配纯文本
【http】 。
在javascript里, 【g】 global 全局,将返回一个包含着所有匹配结果的数组
【i】 强制执行一次不区分大小的执行
2.2匹配任意字符
【.】 匹配任意一个单字的字符 字母 数字 字符 甚至. 本身
2.3匹配特殊字符
【\】
3.1匹配多个字符中的某一个
【[ ]】 表示一个字符集合。【[ns]】 表示这个集合将匹配字符n或s
3.2利用字符集合区间
【[ns]a[0123456789]\.xls】表示:第一个字符必须是n或s,第二个字符必须是a,第三个字符可以是任意一个数字,第四部分必须是.xls
【[a-f]】表示匹配小写字母a到f的任意一个字符 【[ - ]】 代表from to 。另注意是ASCII的顺序。
3.3取非匹配
除了那个字符集合里的字符,其他字符都可以匹配
【[^0-9]】
4.1对特殊字符进行转义
4.2匹配空白字符
????????????????
【\r\n\r\n】 windows
【\n\n】 linux unix
4.3匹配特定的字符类别
【\d】 任何一个数字字符 等价于【[0-9]】
【\D】 然后一个非数字字符 等价于【[^0-9]】
【\w】 任何一个字母数字字符或下划线字符 等价于【[a-zA-Z0-9_]】
【\W】任何一个 非字母数字或非下划线字符 等价于【[^a-zA-A0-9_]】
【\s】 任何一个空白字符 等价于【[\f\n\r\t\v]】
【\S】 任何一个非空白字符 等价于【[^\f\n\r\t\v ]】
5.1有多少个匹配
【+】 表示匹配同一个字符(或字符合集)的多次重复
【a+】 表示匹配一个或多个连续出现的a
【*】 表示匹配零次或一次或多次连续出现,
【[?]】 表示匹配零次或一次
5.2匹配重复次数
【{}】重复次数
5.3防止过度匹配
【*】【+】【{n,}】 都是贪婪型元字符,在进行匹配时是多多益善而不是适可而止的。它们会尽可能从一段文本的开头一直匹配到这段文本的末尾,而不是从这段文本的开头匹配到碰到的第一个匹配时为止。
【*?】
【+?】
【{n,}?】
6.1边界
6.2单词边界
【\b】 匹配单词的边界
【\bcat\b】整个单词 【cat\b】单词的结束 【\bcat】单词的开头
【\B】 匹配不上单词边界
6.3字符串边界
【^】 字符串的开头(位于字符集合的外面并位于一个模式的开头,将匹配字符串开头) // 注意 【^】 只有这个放在【[^ ]】的时候才是求非操作
【$】 字符串的结尾
【(?m)】 表示分行匹配。使用时必须出现在整个模式开头
7.1什么是子表达式(subexpression)
7.2子表达式
当作独立元素来使用,且用【()】括起来
7.3子表达式的嵌套
8.1回溯引用有什么用
举个例子 在标签配对查找时
8.2回溯引用匹配
回溯引用允许正则表达式模式引用前面的匹配结果
8.3回溯引用在替换操作中的应用
9.1前后查找
9.2向前查找
【?=】以这个开头的子表示,需要匹配的文字跟在=后面
9.3向后查找
【?<=】
9.4把向前查找和向后查找结合起来
eg. 【(?<=<[tT][iI][tT][lL][eE]>).*(?=</[tT][iI][tT][lL][eE] >)】匹配标签 title和之间的内容
9.5对前后查找取非
【?!】 把= 换成 !
【?<!】
10.1为什么要嵌入条件
10.2正则表达式里的条件
根据一个回溯引用来进行条件处理
【(?(backreference)true-regex)】其中?表明这是一个条件
根据一个前后查找来进行条件处理
后三章还有例子没有整理。未完待续。。。
《正则表达式必知必会》 笔记
标签:结果 line 字符集 单词 regular 3.1 文本 表示 允许
原文地址:http://www.cnblogs.com/noyb/p/6833447.html