正则表达式PPT示例讲解.ppt
《正则表达式PPT示例讲解.ppt》由会员分享,可在线阅读,更多相关《正则表达式PPT示例讲解.ppt(61页珍藏版)》请在三一办公上搜索。
1、Using Regular Expressions,Lecture Goal,熟悉Regex的基本语法了解高级概念如何构建、如何使用了解在C#、JavaScript中的完整实现相关技巧资料分享,Agenda,IntroductionSome notes about Regular ExpressionsWhy and when to use Regular ExpressionsBasic GrammarMatch charactersSet match positionReplace、Repeated charactersOther CharactersSenior ConceptMatch
2、ing PatternsGroup、Replace、Reverse quotePriority level orderMethods、Ideas for building Regular ExpressionsExamples AnalysisAdditional MattersExperience&SkillsRecommend for learningQ&A,Introduction,Some notes about Regular Expressions,Some notes about Regular Expressions,起源最早从 Unix 中的qed 编辑器,并作为文本编辑和搜
3、索工具中一个重要部分直到现在,属于Unix下专利,尤其是Perl中应用,NET中Regex从Perl中衍生而来简单定义?简写为 Regexes,描述了一种字符串匹配的模式,检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。也即是一串特殊的字符,转换为某种算法,根据这个算法来匹配文本(类似通配符、SQL中的%、词法语法分析)。字符串、文本处理相关VS、Delphi、Java、JavaScript etc 等工具、语言中对string的操作也都是最主要的方面,文本的操作也几乎无处不在,在考虑效率、性能时,正则的选择是很有必要的 复杂度、可读性?Regexes有自
4、己的简单语言,用于精确描述要匹配对象,一行表达式代替众多的编码,但创建复杂,含义含糊,可读性差,与Perl等成功的语言相同,但习惯后正则表达式将非常容易使用。,Some notes about Regular Expressions,在不同工具、语言中的对比JavaScript、VBScript、Perl、PHP、JAVA、.NET etc.差别不是很大语法:细微差别(RegExp()在 VBScript 中使用正则表达式的效率更高,它允许在单个表达式中执行多个字符串操作。PHP继承UNIX的一贯传统,完全支持正规表达式处理PERL中的正规表达式的功能非常强大,很多讲解Regexs技术都会有涉
5、及到PERL中的相关使用,但学起来不是那么容易。,Introduction,Why and when to use Regular Expressions,Why and when to use Regular Expressions,作用模式匹配(对符合匹配项或模式组的特定串进行匹配、查找)替换效率(不同于通常的大量数组、函数实现,且容易出错)1、数据验证 测试输入的字符串,是否符合一定的规则,是否允许输入Email地址合法性、网址、电话号码、出生年月等等验证DEMO2、替换文本 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本或字符替换。在某些情况下,需要对一些特殊的
6、字符进行替换,例如“”“”之类的特殊字符,这时我们可以使用正则表达式来进行替换,而不必对每一个特殊字符使用Replace替换。ex:文章排版(添加空格、Tab等缩进DEMO)、结合编辑器批量处理(在QCode中除错),3、提取子字符串 基于模式匹配,可以查找文档内或输入域内特定的文本,也是正则中最常用的一部分,在涉及替换操作时往往都需要先提取。例如:我们常常会听到,我想提取到其中的XX内容、关键信息,想得到XX的一个参数属性值,又或是想判断用户提交的表单中是否存有相关信息(首页显示图片新闻、文字新闻的判断实现方式?)常见的提取形式:URL分析YearMonth、文章采集、搜索引擎的高亮显示等等
7、。DEMO1 DEMO2,Why and when to use Regular Expressions,Basic Grammar,Match different characters,Match different characters,普通字符正则表达式的最简单形式是在搜索字符串中匹配其本身的单个普通字符。例如,单字符模式,如 A,不论出现在搜索字符串中的何处,它总是匹配字母 A。下面是一些单字符正则表达式模式的示例:/a/7/M/。可以将许多单字符组合起来以形成大的表达式。例如,以下正则表达式组合了单字符表达式:a、7 和 M,/a7M/注意:作为普通字符,没有串联运算符(+、*、n)
8、。只须在一个字符后面键入另一个字符。DEMO,Match different characters,非打印字符,DEMO,Match different characters,特殊字符,DEMO,Match different characters,特殊字符,DEMO,Replace、Repeated characters,不能对定位符(、$)使用限定符(匹配次数、括号等)DEMO,Set match position,DEMO,Other Characters,DEMO,Other Characters,Other Characters,Demo简单的数字、字符匹配,Other Charac
9、ters,Senior Concept,Matching Patterns,Matching Patterns,正则表达式的功能强大表现在模式匹配上,而不是单一的字符匹配上(匹配空字符、字母、数字、发音字符等)什么是模式匹配?子串的定位操作通常称作串的模式匹配也可说成为满足某一规则的特殊串指定的过滤形式模式匹配算法常用的一些字符串处理算法(KMP串匹配等)在进行模式匹配时,相关的查找、替换、匹配等会转化为特定的模式匹配算法这也正是正则式在前端不用写大量函数的原因提供的算法不是万能的,所以一定程度上决定了正则的局限性,在正则无法实现的地方,还需要写相关的函数,Matching Patterns,
10、Matching Patterns,Senior Concept,Group、Replace、Reverse quote,Group、Replace、Reverse quote,Notes:替换和反向引用允许使用组匹配的字符(组作为子表达式),替换允许组作为替换模式的文本的一部分,如连续输入两次,需要用其中一个来替换。就应把匹配的单词放在一个组中,然后用这个组替换整个匹配(“and and”替换为“and”)。反向引用允许稍后在表达式中引用先前匹配的组。例如:匹配一个HTML开始和结束标记,很明显首先匹配开始标记,例如“”,然后匹配对应的结束标记“”,但是我们不知道开始标记是什么,所以无法指定
11、结束标记的内容,除非使用了反向引用。,Group、Replace、Reverse quote,Group命名组可以用(?pattern模式|子模式)命名组没命名时,默认每个组按顺序组号1、2、3.访问 组名是区分大小写的组引用、提取数字、$数字、$组名嵌套时,外面()为优先编号顺序引用组匹配是必须和你所引用的组输入的内容完全匹配,而不是和引用组的表达式匹配 比如:(d)111 输入12不匹配,但匹配11(?d1,2)/(?d1,2)/(?(?:d4|d2)(?x)中的(?:d4|d2)不获取捕获结果,也即是不存储到后面进行替换或查找操作,不拥有捕获组的特性 NOTE,Group、Replace
12、、Reverse quote,Group(简单的分组)捕获(存储匹配成功的模式是Regex的重要特性):此分组字符组合模式在括号内匹配的字符,它是一个捕获组,也就是说被模式匹配的字符成为最终匹配的一部分。假设有如下的输入字符串:ABC1 DEF2 XY,下面的表达式匹配了从A到Z的3个字符,然后是一个数字:(a-zA-Z3)d,每次匹配都含有一个组,即组被捕获。ABC1下一个匹配DEF2下一个匹配有了反向引用,就可通过表达式中的数字访问组,也可通过。NET中的Group和GroupCollection类访问组,后面将阐述:,Group、Replace、Reverse quote,Group(简
13、单的分组)非捕获(忽略匹配串存储到缓冲区?:、?=、?!):不捕获结果作为匹配或替换等操作提取xyz时不需要,则要进行非捕获处理?=?之间的内容?+.*?s*).*?(?=)提取所有HTML标记:,Group、Replace、Reverse quote,Replace:实现匹配,Replace方法都将执行一次全局搜索并替换输入字符串(Mr|Mrs|Miss|Ms|Dr)A-Za-z*$1 X代替Mr X替换输出:($组号),Group、Replace、Reverse quote,Reverse quote:提供了确定文字中重复出现(连续)两个或多个相同单词的位置的能力,也可是出现的组整体例子:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正则 表达式 PPT 示例 讲解

链接地址:https://www.31ppt.com/p-6585633.html