收藏 分享(赏)

正则表达式快速入门.doc

上传人:hyngb9260 文档编号:7829503 上传时间:2019-05-27 格式:DOC 页数:32 大小:946KB
下载 相关 举报
正则表达式快速入门.doc_第1页
第1页 / 共32页
正则表达式快速入门.doc_第2页
第2页 / 共32页
正则表达式快速入门.doc_第3页
第3页 / 共32页
正则表达式快速入门.doc_第4页
第4页 / 共32页
正则表达式快速入门.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、梁卓耀博客:1正则表达式快速入门一 正则表达式测试工具 1二 基本用法 21. 基本的名词解释 22. 本节涉及到的语法表 23. 用法举例说明 3三 中级用法 51. 分组 52. 反义 63. 后向引用 64. 零宽断言 75. 负向零宽断言 86. 注释: 97. 贪婪与懒惰 9一正则表达式的作用1. 正则表达式的英文是 regular expression,意思是符合某种规则的表达式,可以将其理解为一种对文字进行模糊匹配的语言。正则表达式用一些特殊的符号(称为元字符)来代表具有某种特征(例如,某一字符必须是数字字符)的一组字符以及指定匹配的的次数,含有元字符的文本不再表示某一具体的文本

2、内容,而是形成了一种文本模式,可以匹配符合该模式的所有文本串。例如,可以测试输入的字符串,以查看字符串内是否出现电话号码模式或身份证号码模式。即数据验证替换文本可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。事实上,正则表达式在很多语言中都会用到,其内容几乎是独立于具体语言。2. 正则表达式对字符串的操作主要包括:1.字符串匹配 2.指定字符串替换 3.指定字符串查找 4.字符串分割二正则表达式测试工具1. 第一步:先确保你的电脑已经安装了“.Net Framework 2.0”,如果你的电脑没有安装,可以到这个网址下载并安装。网址:http:/ 第二步:安装 R

3、egex Tester 测试工具,网址:http:/ 第三步:这是个绿色软件,下载完后打开压缩包,直接运行 RegexTester.exe。4. 用法:1) 在 Regex 空白处输入正则表达式;2) 在 Source 空白处输入需要查找的内容3) 当输入完正则表达式和需要查找的内容后,按 F5 键,就会在 Mateches 空白处显示你匹配你所写的正则表达式的内容;5. 例子:1) 正则表达式“bcw*b ”,这个表达式意思是匹配以字母 c 开头的单词先是某个单词开始处(b),然后是字母 c,然后是任意数量的字母或数字(w*) ,梁卓耀博客:2最后是单词结束处(b)。2) 欲查找的内容:cb

4、c,bda,bdamlkfdasfsd,cfdsafsdl,fdakldsaf3) 按 F5 键,在 Mateches 空白处显示结果 cbc 和 cfdsafsdl;4) 如图 1 所示图 1三基本用法1. 基本的名词解释1) 字符:是指计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。2) 字符串:是指 0 个或更多个字符的序列。3) 文本:也就是文字,字符串。4) 匹配:某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。2. 本节涉及到的语法表代码 说明. 匹配除换行符以外包括空格和 Tab 键的任意字符

5、* 重复前一个字符或一组表达式零次或更多次 ? 重复前一个字符或一组表达式零次或一次+ 重复前一个字符或一组表达式一次或更多次;- 匹配除了换行符以外的任意字符 转义符,将特殊字符转化为普通字符,取消后面跟着的字符的特殊意义;比如如果你想查找“.”,或者“*”,就需要用“” 。因此,你应该梁卓耀博客:3使用“.”和“*” 。当然,要查找本身,你也得用“.”| 或的表达式,表示分支条件,匹配代码左侧的表达式或匹配代码右侧的表达式两者之一;注意:当左侧的表达式匹配条件相符的话,不再检测右侧的表达式 匹配字符串的开始的一个位置,同时也表示否的表达式,表示不想被匹配的字符,一般和一起使用。也匹配输入字

6、符串的开始$ 匹配字符串的结束的一个位置() 匹配一组表达式,该表达式可以由其它特殊字符组成 匹配包含在其中的单个字符w 匹配任意一个字母或数字或下划线或汉字等 W 匹配任意不是字母,数字,下划线,汉字的字符s 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等S 匹配任意不是空白符的字符,等价于fnrtvd 匹配任意一位数字,等价于09D 匹配任意非数字的字符,等价于09b 匹配一个单词的开始或结束,也就是指单词和空格间的位置B 匹配不是单词开头或结束的位置f 匹配一个换页符n 匹配一个换行符r 匹配一个回车符t 匹配一个制表符v 匹配一个垂直制表符n 重复 n 次,只对邻

7、近的字符或一组表达式起作用n,m 重复 n 到 m 次,只对邻近的字符或一组表达式起作用(exp) 匹配 exp,并捕获文本到自动命名的组里(?exp) 匹配 exp,并捕获文本到名称为 name 的组里,也可以写成(?nameexp)(?:exp) 匹配 exp,不捕获匹配的文本,也不给此分组分配组号(?=exp) 匹配 exp 前面的位置(?+所需语法:匹配包含在其中的单个字符;表示否的表达式,表示不想被匹配的字符,一般和一起使用。也匹配输入字符串的开始; +重复前一个字符或一组表达式一次或更多次;含义说明:匹配用尖括号括起来的以 c 开头的字符串;查找结果:能查找到类似“”这样的字符串;

8、如图 17 所示梁卓耀博客:19图 173. 后向引用使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为 1,第二个为 2,以此类推。后向引用用于重复搜索前面某个分组匹配的文本。1) 常用后向引用语法:1.1)(exp) 匹配 exp,并捕获文本到自动命名的组里1.2)(?exp) 匹配 exp,并捕获文本到名称为 name 的组里,也可以写成(?nameexp)1.3)(?:exp) 匹配 exp,不捕获匹配的文本,也不给

9、此分组分配组号2) 表达式:b(w+)bs+1b所需语法:b匹配一个单词的开始或结束,也就是指单词和空格间的位置;w匹配任意一个字母或数字或下划线或汉字等;+重复前一个字符或一组表达式一次或更多次;s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等;含义说明:这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(b(w+)b),这个单词会被捕获到编号为 1 的分组中,然后是 1 个或几个空白符(s+),最后是分组 1 中捕获的内容(也就是前面匹梁卓耀博客:20配的那个单词)(1)。查找结果:可以查找到类似“bye bye”或“go go”这样的单词;

10、如图 18 所示图 183) 表达式:(?w+)所需语法:(?exp) 匹配 exp,并捕获文本到名称为 name 的组里,也可以写成(?nameexp);w匹配任意一个字母或数字或下划线或汉字等;+重复前一个字符或一组表达式一次或更多次;含义说明:查找以字母或数字或下划线或汉字的一个字符串,并且把这个字符串捕获到命名为“word”的分组里(注:把尖括号换成也行:(?Wordw+))查找结果: 以查找字符串 “”为例,查找结果为“com” ;如图 19 所示梁卓耀博客:21图 194) 表达式:b(?w+)bs+kb所需语法:b匹配一个单词的开始或结束,也就是指单词和空格间的位置;(?exp)

11、 匹配 exp,并捕获文本到名称为 name 的组里,也可以写成(?nameexp);s匹配任意的空白符,包括空格,制表符(Tab) ,换行符,中文全角空格等;+重复前一个字符或一组表达式一次或更多次;含义说明:参照上例,其实这个表达式的重点的内容是代码“kb” ,表示引用“wrod”分组里面的内容;查找结果:查找类似“abc abc”这样的字符串,能找到“abc abc”这样的结果;如图 20 所示梁卓耀博客:22图 204. 零宽断言1) 常用零宽断言语法(?=exp) 匹配 exp 前面的位置(?).*(?=)所需语法:(?)指定了这样的前缀:被尖括号括起来的单词(比如可能是) ,然后是.*(任意的字符串),最后是一个后缀(?=) 。注意后缀里的 /,它用到了前面提过的字符转义;1 则是一个反向引用,引用的正是捕获的第一组,前面的(w+)匹配的内容,这样如果前缀实际上是的话,后缀就是了。整个表达式匹配的是和 之间的内容(注意:不包括前缀和后缀本身)。查找结果:匹配类似“abcd”的字符串,能找到“abcd ”这样的结果;如图 29 所示

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报