欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    正则表达式PPT示例讲解(精品).ppt

    • 资源ID:71800255       资源大小:944.50KB        全文页数:61页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    正则表达式PPT示例讲解(精品).ppt

    Using Regular ExpressionsUsing Regular ExpressionsLecture Goal熟悉Regex的基本语法了解高级概念如何构建、如何使用了解在C#、JavaScript中的完整实现相关技巧资料分享AgendaIntroductionSome notes about Regular ExpressionsWhy and when to use Regular ExpressionsBasic GrammarMatch charactersSet match positionReplace、Repeated charactersOther CharactersSenior ConceptMatching PatternsGroup、Replace、Reverse quotePriority level orderMethods、Ideas for building Regular ExpressionsExamples AnalysisAdditional MattersExperience&SkillsRecommend for learningQ&AIntroductionIntroductionSome notes about Regular ExpressionsSome notes about Regular ExpressionsSome notes about Regular ExpressionsSome notes about Regular Expressions起源起源最早从 Unix 中的qed 编辑器,并作为文本编辑和搜索工具中一个重要部分直到现在,属于Unix下专利,尤其是Perl中应用,NET中Regex从Perl中衍生而来简单定义?简单定义?简写为 Regexes,描述了一种字符串匹配的模式,检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。也即是一串特殊的字符,转换为某种算法,根据这个算法来匹配文本(类似通配符、SQL中的%、词法语法分析)。字符串、文本处理相关字符串、文本处理相关VS、Delphi、Java、JavaScript etc 等工具、语言中对string的操作也都是最主要的方面,文本的操作也几乎无处不在,在考虑效率、性能时,正则的选择是很有必要的 复杂度、可读性?复杂度、可读性?Regexes有自己的简单语言,用于精确描述要匹配对象,一行表达式代替众多的编码,但创建复杂,含义含糊,可读性差,与Perl等成功的语言相同,但习惯后正则表达式将非常容易使用。Some notes about Regular ExpressionsSome notes about Regular Expressions在不同工具、语言中的对比在不同工具、语言中的对比JavaScript、VBScript、Perl、PHP、JAVA、.NET etc.差别不是很大语法:细微差别(RegExp()在 VBScript 中使用正则表达式的效率更高,它允许在单个表达式中执行多个字符串操作。PHP继承UNIX的一贯传统,完全支持正规表达式处理PERL中的正规表达式的功能非常强大,很多讲解Regexs技术都会有涉及到PERL中的相关使用,但学起来不是那么容易。IntroductionIntroductionWhy and when to use Regular ExpressionsWhy and when to use Regular ExpressionsWhy and when to use Regular ExpressionsWhy and when to use Regular Expressions作用作用模式匹配(对符合匹配项或模式组的特定串进行匹配、查找)替换效率(不同于通常的大量数组、函数实现,且容易出错)1、数据验证 测试输入的字符串,是否符合一定的规则,是否允许输入Email地址合法性、网址、电话号码、出生年月等等验证DEMODEMO2、替换文本 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本或字符替换。在某些情况下,需要对一些特殊的字符进行替换,例如“”“”之类的特殊字符,这时我们可以使用正则表达式来进行替换,而不必对每一个特殊字符使用Replace替换。ex:文章排版(添加空格、Tab等缩进DEMODEMO)、结合编辑器批量处理(在QCode中除错)3、提取子字符串提取子字符串 基于模式匹配,可以查找文档内或输入域内特定的文本,也是正则中最常用的一部分,在涉及替换操作时往往都需要先提取。例如:我们常常会听到,我想提取到其中的XX内容、关键信息,想得到XX的一个参数属性值,又或是想判断用户提交的表单中是否存有相关信息(首页显示图片新闻、文字新闻的判断实现方式?)常见的提取形式:URL分析YearMonth、文章采集、搜索引擎的高亮显示等等。DEMO1DEMO1 DEMO2DEMO2Why and when to use Regular ExpressionsBasic GrammarBasic GrammarMatch different charactersMatch different charactersMatch different charactersMatch different characters普通字符普通字符正则表达式的最简单形式是在搜索字符串中匹配其本身的单个普通字符。例如,单字符模式,如 A,不论出现在搜索字符串中的何处,它总是匹配字母 A。下面是一些单字符正则表达式模式的示例:/a/7/M/。可以将许多单字符组合起来以形成大的表达式。例如,以下正则表达式组合了单字符表达式:a、7 和 M,/a7M/注意:作为普通字符,没有串联运算符(+、*、n)。只须在一个字符后面键入另一个字符。DEMODEMOMatch different charactersMatch different characters非打印字符非打印字符f换页符匹配。等效于 x0c 和 cLn换行符换行符匹配。等效于 x0a 和 cJr匹配一个回车符回车符。等效于 x0d 和 cMv垂直制表符垂直制表符匹配(文本竖向时Tab)。与 x0b 和 cK 等效t制表符制表符匹配。与 x09 和 cI 等效s匹配任何空白字符,包括空格、制表符、换页符空格、制表符、换页符等。与 fnrtvfnrtv 等效S匹配任何非空白字符非空白字符。等价于 fnrtv DEMOMatch different charactersMatch different characters特殊字符特殊字符*零次或多次零次或多次匹配前面的字符或子表达式。例如,zo*匹配“z”和“zoo”,:忽略中间有符号与:遇到停止+一次一次或多次或多次匹配前面的字符或子表达式。例如,“zo+”与“zo”和“zoo”匹配,但与“z”不匹配,贪婪模式。.匹配除换行符 n之外的任何单字符。要匹配.,请使用转义标识“”?匹配前面的子表达式零次或一次子表达式零次或一次,或指明一个非贪婪限定符(pattern)?。例如,“do(es)?”匹配“do”或“does”中的“do”,要匹配?字符,请使用?。(*、+、?、n、n,、n,mDEMOMatch different charactersMatch different characters特殊字符特殊字符将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配换行符,“”匹配“”,-转义连字符,当查找?、“。”、name不作为单字符(name)等时候使用()标记一个子表达式标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用(和)标记限定符限定符(n,m)表达式的开始。要匹配,请使用|指明两项、多项间的一个选择。要匹配|,使用|URL的一种匹配:(https?|ftp|gopher|news|telnet|mms|rtsp):/(a-z0-9/-_+=.!%?#%&:$()|+)尽不用.*的贪婪模式DEMOReplace Replace、Repeated charactersRepeated charactersnn 是非负整数。正好匹配匹配 n n 次次。例如,“o2”与“Bob”中的“o”不匹配,但与“food”中的两个“o”匹配,DEMOn,n 是非负整数。匹配 n n 次或多次次或多次。例如,“o2,”不匹配“Bob”中的“o”,而匹配“foooood”中的所有 o。o1,等效于 o+。o0,等效于 o*。n,mm 和 n 是非负整数,其中 n=mn=m。至少匹配 n 次,至多匹配 m 次。例如,“o1,3”匹配“fooooood”中的头三个 o。o0,1 等效于 o?。注意:您不能将空格插入逗号和数字之间。不能对定位符(、$)使用限定符(匹配次数、括号等)DEMOSet match positionSet match position$前面的模式必在字符串的结尾处,如是一个多行字符串,应在任一行的结尾 其后的模式必在串开始处(匹配输入串一行的开始位置),如是一个多行字符串,应位于任一行的开始,对于指定多行文本时(也匹配nr之后的位置),出现在其他地方:xyz 1234或xzy1-4这里没任何意义。将匹配除1234外的任何字符,查找类似“第一章”、“结束”时用b匹配一个字边界,即字与空格间的位置。例如,“erb”匹配“never”中的“er”,但不匹配“verb”中的“er”B匹配一个单词非边界的位置。“erB”erB”匹配匹配“verb”verb”中的中的“er”er”,但不匹配“never”中的“er”,这里的er后为边界z前面的模式必在串的结尾处;“Abz”匹配”AbcAb”中的尾部Ab,多行标志被忽略 Z前面的模式必在串结尾处或换行符前换行符前DEMOOther CharactersOther Charactersx|y与 x 或或 y 匹配。例如,“z|food”与“z”或“food”匹配xyz匹配输入字符串开始的位置字符集。匹配包含的任一一字符。例如,“abc”匹配“plain”中的“a”。xyz反向字符集。匹配未包含的任何字符未包含的任何字符。例如,“abc”匹配“plain”中的“p”。a-z字符范围。匹配指定范围范围内的任何字符。例如,“a-z”匹配“a”到“z”范围内的任何小写字母 a-z 反向范围反向范围字符。匹配不在指定的范围内的任何字符。例如,“a-z”匹配任何不在“a”到“z”范围内的任何字符 括号中的任一一字符 非括号中的任一字符 DEMOOther CharactersOther Charactersd数字匹配。等效 0-9 dd可匹配72,不可aa或7aD 非数字字符匹配。等效于 0-9w匹配数字、字母、下划线字符(汉字?)。与“A-Za-z0-9_”等效(CSDN中文注册ID:pLlpLupLtpLopNdpPc)W任何非字字符匹配。与“A-Za-z0-9_”等效 xn匹配匹配 n n,此处的 n 是一个十六进制转义码,必须正好是两位两位数长数长。“x41”匹配“A”,”x61”匹配a。“x041”与“x04”&“1”等效。允许在正则表达式中使用 ASCII ASCII 代码代码num匹配 num,此处的 num 是一个正整数正整数。到捕获匹配的反向引用(连续出现的字符)。例如,“(.)1”匹配两个连续相同字符 n标识一个八进制转义码或反向引用八进制转义码或反向引用。如果 n 前面至少有 n 个捕获子表达式,那么 n 是反向引用。否则,如果 n 是八进制数(0-7),那么 n 是八进制转义码 Other CharactersOther CharactersDemo简单的数字、字符匹配Other CharactersOther Charactersnm标识一个八进制转义码或反向引用八进制转义码或反向引用。如果 nm 前面至少有 nm nm 个捕获子表达式,那么 nm 是反向引用。如果 nm 前面至少有 n n 个捕获,那么 n 是反向引用,后面跟 m。如果前面的条件均不存在,那么当 n 和 m 是八进制数(0-7)时,nm 匹配八进制转义码 nm nml当 n 是八进制数(0-3),m 和 l 是八进制数(0-7)时,匹配八进制转义码 nml un匹配 n,其中 n 是以四位十六进制数四位十六进制数表示的 Unicode 字符。例如,u00A9 匹配版权符号()。汉字的范围:u4e00-u9fa5DEMODEMOSenior ConceptSenior ConceptMatching PatternsMatching PatternsMatching PatternsMatching Patterns正则表达式的功能强大表现在模式匹配模式匹配上,而不是单一的字符匹配上(匹配空字符、字母、数字、发音字符等)什么是模式匹配?子串的定位操作通常称作串的模式匹配也可说成为满足某一规则的特殊串指定的过滤形式模式匹配算法常用的一些字符串处理算法(KMP串匹配等)在进行模式匹配时,相关的查找、替换、匹配等会转化为特定的模式匹配算法这也正是正则式在前端不用写大量函数的原因提供的算法不是万能的,所以一定程度上决定了正则的局限性,在正则无法实现的地方,还需要写相关的函数Matching PatternsMatching Patterns(pattern)匹配 pattern 并捕获捕获该匹配的子表达式。可以使用$0.$9(不存在$9类似的值时,默认替换为空)属性从结果“匹配”集合中检索捕获的匹配、或进行替换操作。匹配括号字符(),使用“(”或者“)”DEMODEMO(?:pattern)匹配 pattern 但不捕获不捕获该匹配的子表达式,即它是一个非捕获匹配,不存储供以后使用的匹配。在用“或”字符(|)组合模式部件的情况很有用。例如,与“industry|industries”相比,“industr(?:y|ies)”是一个更加经济的表达式 Matching PatternsMatching Patterns?!pattern与?=相反该表达式匹配处于不匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配,即不能捕获供以后使用的匹配。例如,“Windows(?!95|98|NT|2000)”与“Windows 3.1”中的“Windows”匹配,但不与“Windows 2000”中的“Windows”匹配。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行的字符后 d+(?!)提取到(650)中的,则不会提取DEMODEMO(?=pattern)?=后该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配非捕获匹配,即不能捕获供以后使用的匹配。例如,“Windows(?=95|98|NT|2000)”与“Windows 2000”中的“Windows”匹配,但不与“Windows 3.1”中的“Windows”匹配。预测先行不占用字符,即发生匹配后,下一匹配的搜索紧随上一匹配之后,而不是在组成预测先行字符后 DEMODEMOSenior ConceptSenior ConceptGroupGroup、ReplaceReplace、Reverse quoteReverse quoteGroupGroup、ReplaceReplace、Reverse quoteReverse quoteNotes:Notes:替换和反向引用允许使用组匹配的字符(组作为子表达式),替换允许组作为替换模式的文本的一部分,如连续输入两次,需要用其中一个来替换。就应把匹配的单词放在一个组中,然后用这个组替换整个匹配(“and and”替换为“and”)。反向引用允许稍后在表达式中引用先前匹配的组。例如:匹配一个HTML开始和结束标记,很明显首先匹配开始标记,例如“”,然后匹配对应的结束标记“”,但是我们不知道开始标记是什么,所以无法指定结束标记的内容,除非使用了反向引用。GroupGroup、ReplaceReplace、Reverse quoteReverse quoteGroup命名组可以用(?pattern模式|子模式)命名组没命名时,默认每个组按顺序组号1、2、3.访问 组名是区分大小写的组引用、提取数字、$数字、$组名嵌套时,外面()为优先编号顺序引用组匹配是必须和你所引用的组输入的内容完全匹配,而不是和引用组的表达式匹配 比如:(d)111 输入12不匹配,但匹配11(?d1,2)/(?d1,2)/(?(?:d4|d2)(?x)中的(?:d4|d2)不获取捕获结果,也即是不存储到后面进行替换或查找操作,不拥有捕获组的特性 NOTEGroupGroup、ReplaceReplace、Reverse quoteReverse quoteGroup(简单的分组)捕获(存储匹配成功的模式是Regex的重要特性):此分组字符组合模式在括号内匹配的字符,它是一个捕获组,也就是说被模式匹配的字符成为最终匹配的一部分。假设有如下的输入字符串:ABC1 DEF2 XY,下面的表达式匹配了从A到Z的3个字符,然后是一个数字:(a-zA-Z3)d,每次匹配都含有一个组,即组被捕获。ABC1下一个匹配DEF2下一个匹配有了反向引用,就可通过表达式中的数字访问组组,也可通过。NET中的Group和GroupCollection类访问组,后面将阐述:GroupGroup、ReplaceReplace、Reverse quoteReverse quoteGroup(简单的分组)非捕获(忽略匹配串存储到缓冲区?:、?=、?!):不捕获结果作为匹配或替换等操作提取xyz时不需要,则要进行非捕获处理?=?=?!提取之间的内容?=+.*?s*).*?(?=)提取所有HTML标记:GroupGroup、ReplaceReplace、Reverse quoteReverse quoteReplaceReplace:实现匹配,Replace方法都将执行一次全局搜索并替换输入字符串(Mr|Mrs|Miss|Ms|Dr)A-Za-z*$1 X代替Mr X替换输出:($组号)$group 用group指定的组号作替换$name 替换由组(?)匹配的最后一个子串$替换字符$GroupGroup、ReplaceReplace、Reverse quoteReverse quoteReverse quoteReverse quote:提供了确定文字中重复出现重复出现(连续连续)两个或多个相同单词的位置的能力,也可是出现的组整体例子:匹配上一组可用“组号”、”k”in the the second.(a-zA-Z+)s1 或或(?(a-zA-Z+)sk替换文本:$1输出:in the second.(a-z+)1则匹配a a或hello helloDEMOGroupGroup、ReplaceReplace、Reverse quoteReverse quote可给组命名,通过名称反向引用此组:(?ba-zA-Z+b)sk在使用反向引用时,指定八进制数会使反向引用变得混乱,1和9总是用作反向引用,任何以0打头的数字,如040将作为一个八进制数处理,它代表一个ASCII字符,如果一个数字没有以0打头,它将作为一个反向引用处理,前提是有一个匹配组用于反向引用。如果拥有11个组,那么11将匹配第11个组,如果只有10个组,那么11作为代表一个ASCII字符的八进制数被处理。Senior ConceptSenior ConceptPriority Level OrderPriority Level OrderPriority Level OrderPriority Level Order正则表达式从正则表达式从左到右左到右进行计算,并遵循进行计算,并遵循优先级顺序优先级顺序,这与算术表达式,这与算术表达式非常类似,诸如操作系统中的非常类似,诸如操作系统中的优先级调度优先级调度也属于一种顺序。下表从也属于一种顺序。下表从最最高到最低高到最低说明了各种正则表达式运算符的优先级顺序:说明了各种正则表达式运算符的优先级顺序:转义符(),(?:),(?=),括号和中括号*,+,?,n,n,n,m 限定符,$,anymetacharacter,anycharacter 定位点和序列|替换(d1|a-zA-Z1,)+DEMOSenior ConceptSenior Concept在表达式中作决策在表达式中作决策在表达式中作决策在表达式中作决策决策?简单的看成是判断、选择。|可做简单的决策判断条件。x|y有两个更高级的决策指令:expression和和name(?(expression)yes|no)如果匹配了expression,表达式将试图匹配yes,否则no(?(?=expression)yes|no)作决策的模式expression的长度为0,代表了yes或no的表达式将从与expression相同的位置开始匹配。DEMOSenior ConceptSenior ConceptMethodsMethods、Ideas for building Regular ExpressionsIdeas for building Regular ExpressionsHow to build Regular Expressions编译原理编译原理词法分析、语法分析匹配规则Regexes不适合匹配复杂的语法词法规则和创建数学表达式的方法一样,用多种元字符与操作符将小的表达式结合起来,创建更长、更复杂的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。构建方法的灵活、多样性归因于需求条件的多样化不同的语言里会有细节的不同:对于 JScript,分隔符是正斜杠(/)字符。例如:/expression/How to build Regular ExpressionsC#C#中正则的应用:中正则的应用:(Short View)(Short View)1 1、NamespaceNamespaceSystem.Text.RegularExpressions 8个类 类描述Regex 包含了正表,以及使用正表的各种方法 MatchCollection 包含一个正表找到的所有匹配项、Match序列 Match 包含了一次匹配中所有匹配的结果GroupCollection 所有分组 Group 一个分组集合中一个组的细节,一次组记录的结果 CaptureCollection 一个组的所有Capture对象 Capture 返回组内一次捕获所匹配的字符串 RegexCompilationInfo 提供了把Regex编译为一个独立程序集所需的细节 How to build Regular ExpressionsHow to build Regular Expressions2 2、RegexRegex类类Regex可创建正表,还提供很多有用方法来操作使用正表(搜索字符模式和复杂的查找替换),如把一个正表用于不同的字符串,就可创建一个Regex对象,但许多类的方法都是静态方法,也就是说,如正表只使用一次,那么直接使用所需方法要比创建一个Regex对象更有效,如使用静态的Replace方法:Regex.Replace(string input,string pattern,string replacement)RegexOptions参数Attribute DescriptionIgnoreCase 忽略大小写,默认是区分大小写的 RightToLeft 右到左查找输入串,默认顺序是左到右,符合英语自左到右的习惯,不同于阿拉伯语 None 不设定标志,这是默认选项,表示搜索区分大小写,且从左到右进行 MultiLine指定和$可匹配行的开头和结尾,及串的开头和结尾,使用换行符分隔,在每一行都能得到不同的匹配,但字符”.”仍然不匹配换行符 SingleLine 规定”.”匹配人一字符,换行符除外,默认是”.”不匹配换行符 How to build Regular ExpressionsHow to build Regular Expressions3、类构造函数、类构造函数(备注备注)Regex(string pattern)Regex(string pattern,RegexOptions options)Regex myRegex=new Regex(规则串);Console.WriteLine(myRegex.IsMatch(带检验文本);、Other FunctionsIsMatch()检测是否匹配当前规则的串Replace()静态,用指定的字符代替一个匹配模式,有十种变体MatchesSplitEscape对串中的正则式进行转义处理How to build Regular ExpressionsHow to build Regular ExpressionsMatchMatch类和类和MatchCollectionMatchCollection类类利用这两个类,可获得通过一个正则表达式实现的每一次匹配的细节,Match类表示一次匹配,而MatchCollection类,是一个Match对象的集合,其中没一个对象都代表一次成功的匹配。需要这两个类方法来检索匹配。Group和GroupCollection类将上面的字符子串作为子集合对象(组形成的对象)Examples AnalysisExamples AnalysisSimple demoSimple demoSimple demoSimple demo1、验证jpg,jpeg,gif,bmp格式的文件名,大小写均可?DEMO2、验证15位、17位、18位身份证号码?15位数字(d15)18位数字(d18)18位(前17位数字,后可为字母X)(d17x)DEMO3、字符串过滤的换向思维DEMO4、结尾不为”/”的多种写法?/、(?!/)、。$5、取中间值的几种写法?sdfsfsdf(fdsfds)fdsfdsf(.*?)、(?=().*?(?=)Simple demoSimple demo6、提取HTML代码中的对应标签DEMO7、匹配日期(?d1,2)/(?d1,2)/(?(?:d4|d2)2/31/2006?8、URL(?w+):/(?w.+/?)S*(?x)(=s*?|)(https?|ftp|gopher|news|telnet|mms|rtsp):/(a-z0-9/-_+=.!%?#%&:$()|+)VS.NET自带的正则Simple demoSimple demo9、IP的另类验证实现(d1,2|1dd|20-4d|250-5).(d1,2|1dd|20-4d|250-5).(d1,2|1dd|20-4d|250-5).(d1,2|1dd|20-4d|250-5)10、电话号码(区号提取)(0512)68078800-6852(?d3,4)s*(?d7,8(?:-|s*)d4)(?x)Simple demoSimple demo11、乱码提取如何将国家高技术研究发展计划(86.08-25 写成正则表达式其中6486为0-9+,国家高技术研究发展计划(86.08-25 为?(*id=(?d+)+)?(d.+d-+)?不一定非要单一的写出每个式子,将其复合到一起Simple demoSimple demo12、判断C#代码有无注释/*/*/(/2,.*n?)?(/1,*1,.*?*1,/1,)?Simple demoSimple demo13、匹配:999999999-9999-99999-999(d3-)*d1,3Examples AnalysisExamples AnalysisUBB ConversionUBB ConversionUBB ConversionUBB Conversion如何实现UBB编辑器?添加特定格式的标签转换为对应效果的HTMLDEMOhttp:/localhost/blog/default.html1、JS添加B自定义标签,Post到DB2、正则转换DEMO3、添加显示样式(边框、颜色)Examples AnalysisExamples AnalysisMatch rules for QRuleMatch rules for QRuleMatch rules for QRuleMatch rules for QRuleQRule检测错误解决方法逐一替换正则替换处理(?=+-*/)(+-*/=1,2)(?=+-*/)上面的表达式将替换所有+、-、*、/等符号,左右两边应为空时的处理,包括双目运算符+=DEMOQRule 检查规范的的匹配规则DEMOAdditional MattersAdditional MattersExperience&SkillsExperience&SkillsExperience&SkillsExperience&Skills表达式引擎的规则表达式引擎的规则 前面介绍了表达式语法,和引擎匹配的规则,接下来需要牢记一些基本的应用规则。规则1规则2规则3规则4规则5NOTESExperience&SkillsExperience&Skills1、After we know the theory,we just need to have a lot of practices2、注意转义字符的使用(C#:格式字符串)3、遇到字符串处理,尽可尝试用表达式来解决4、实现方法最为重要,构思、寻找共性、分模块完成,匹配日期时的闰年处理规律。1996、2000后两位可整除4,就可而不是都整除,Mybeer5、在不需要使用贪婪、捕获组存储时尽可不用,影响效率(?:防止存储)6、专业的表达式不是一下就可写出来的Experience&SkillsExperience&Skills7、没有绝对完美的表达式,可简单的提取,也可复杂、严格的实现,局限与特定的处理不一定要完美,不必充分考虑到所有的情况。8、表达式在某些时候并不是万能的,巧妙的结合特定的语言环境9、寻找共性而非写很多式子:update tbTest set name=netsky,sex=男如果用正则表达式区配netsky 和 男解决方法:?(w+)?=(+),非单个对前后进行两次匹配正则表达式并不适合做复杂的语法/词法分析不需要写正则的时候,不要强行使用DEMOAdditional MattersAdditional MattersRecommend for learningRecommend for learningRecommend for learningRecommend for learningBooks权威书籍Mastering Regular ExpressionsJeffrey E.F.FriedlJeffrey E.F.FriedlC#Text Manipulation String Handling and Regular Expression HandbookFrancois Liger、Craig McQueen、Paul Wilton著MSDNPerl 5模式匹配Websites:http:/ 9 PDF lecture)http:/http:/http:/www.regular-expressions.info/Recommend for learningRecommend for learningOthers:Tools:RegexBuddy、ExpressoCodeProject Test Toolhttp:/

    注意事项

    本文(正则表达式PPT示例讲解(精品).ppt)为本站会员(hyn****60)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开