1、Stefanie正则表达式正则表达式概念概念1.作用作用2.语法语法3.使用使用4.Stefanie2正则表达式正则表达式概念概念v百度百科:在计算机科学中,是指一个用来在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规描述或者匹配一系列符合某个句法规则的字符串的单个字符串。则的字符串的单个字符串。在很多文本编辑器或其他工具里,在很多文本编辑器或其他工具里,正则表达式通常被用来检索和正则表达式通常被用来检索和/或替或替换那些符合某个模式的文本内容。换那些符合某个模式的文本内容。Stefanie3正则表达式正则表达式概念概念正则表达式正则表达式Regular expression正则表
2、达式正则表达式就是记录文就是记录文本规则的代本规则的代码码.Stefanie41测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看该字符串是否是一个电话号码或一个信用卡号码。数据有效性验证。23正则表达式正则表达式作用作用替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。Stefanie5正则表达式正则表达式应用应用应用应用信息抽取信息抽取日志分析日志分析校验数据校验数据修整数据修整数据大批量文本修改大批量文本修改复杂文本修改复杂文本修改应用应用文本统计分析
3、文本统计分析抽取一个网页抽取一个网页htmlhtml代码代码去掉全部去掉全部脚本脚本正则表达式正则表达式Regular expressionStefanie6正则表达式正则表达式语法语法v组成:正则表达式由一些普通字符和一正则表达式由一些普通字符和一些些元字符(meta-characters)组成。)组成。普通字符包括大小写的字母和数字普通字符包括大小写的字母和数字,在正则表达式中具有一定的特殊含义,在正则表达式中具有一定的特殊含义,这些字符叫做这些字符叫做元字符。eg:0dd-dddddddd d:匹配一个数字字符。等价于:匹配一个数字字符。等价于 0-9。Stefanie7正则表达式正则表
4、达式语法语法v不同的语言(如PHP和JAVA)、相同语言的不同类库(如来自Sun的Java Regular Expression类库跟Apache Jakarta的正则表达式类库)间,用法会有所差别,在使用的时候,要注意这些差别。Stefanie8正则表达式正则表达式语法语法v创建:var reg=/pattern/;var reg=new RegExp(“pattern”);veg:var reg=/0dd-dddddddd/;var reg=new RegExp(“010”);TestStefanie9正则表达式正则表达式常用元字符常用元字符TestStefanie10正则表达式正则表达式
5、常用反义字符常用反义字符TestStefanie11正则表达式正则表达式常用限定符常用限定符TestStefanie12正则表达式正则表达式“?”用法用法Stefanie13正则表达式正则表达式(1)v 、m-n:匹配括号中的任何一个字符。例如正则表达式匹配括号中的任何一个字符。例如正则表达式raout匹配匹配rat、rot和和rut,但是不匹配,但是不匹配ret。可以在括号中使用连字符可以在括号中使用连字符-来指定字符的区间,例来指定字符的区间,例如正则表达式如正则表达式0-9可以匹配任何数字字符;可以匹配任何数字字符;还可以制定多个区间,例如正则表达式还可以制定多个区间,例如正则表达式A-
6、Za-z可以匹配任何大小写字母可以匹配任何大小写字母Stefanie14正则表达式正则表达式(2)vm-n:要想匹配除了指定区间之外的字符要想匹配除了指定区间之外的字符也就是所也就是所谓的补集谓的补集在左边的括号和第一个字符之间使在左边的括号和第一个字符之间使用用字符,例如正则表达式字符,例如正则表达式269A-Z 将匹配除了将匹配除了2、6、9和所有大写字母之外的任何字符。和所有大写字母之外的任何字符。sthe,所有含,所有含he的字符串,除了的字符串,除了she和和the以以外。外。TestStefanie15正则表达式正则表达式优先级顺序优先级顺序Stefanie16正则表达式正则表达式
7、方法方法vRegExp对象对象 属性:属性:i,g,m(i表示不区分大小写,表示不区分大小写,g表示全表示全局匹配,局匹配,m(多行多行)标志)标志)方法:方法:test、exec var re=new RegExp(“javasScript”,ig);vString中使用正则表达式:中使用正则表达式:match、replace、search var re=/(w+)s*,s*(w+)/;Stefanie17正则表达式正则表达式test方法方法vreg.test(str)返回一个返回一个 Boolean Boolean 值,它指出在被查找的字符串值,它指出在被查找的字符串中是否存在模式,中是否
8、存在模式,如果存在则返回如果存在则返回 true,否则就,否则就返回返回 false;reg:要匹配的模式:要匹配的模式;str:被:被查找的字符串;查找的字符串;Stefanie18正则表达式正则表达式test方法方法RUNStefanie19正则表达式正则表达式exec方法方法vreg.exec(str)用正则表达式模式在字符串中运行查找,并返回包用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组;含该查找结果的一个数组;reg:要匹配的模式:要匹配的模式;str:被:被查找的字符串;查找的字符串;exec 方法返回的数组有三个属性,分别是方法返回的数组有三个属性,分别是
9、input、index 和和 lastIndex。Input 属性包含了整个被查找的属性包含了整个被查找的字符串。字符串。Index 属性中包含了整个被查找字符串中被属性中包含了整个被查找字符串中被匹配的子字符串的位置。匹配的子字符串的位置。LastIndex 属性中包含了匹属性中包含了匹配中最后一个字符的下一个位置。配中最后一个字符的下一个位置。Stefanie20正则表达式正则表达式exec方法方法RUNStefanie21正则表达式正则表达式match方法方法vstr.match(reg)使用正则表达式模式对字符串执行查找,并将包含使用正则表达式模式对字符串执行查找,并将包含查找的结果作
10、为数组返回;查找的结果作为数组返回;str:被被查找的字符串查找的字符串;reg:要匹配的模式;要匹配的模式;match 方法返回的数组有三个属性:方法返回的数组有三个属性:input、index 和和 lastIndex。Input 属性包含整个的被查找字符串。属性包含整个的被查找字符串。Index 属性包含了在整个被查找字符串中匹配的子属性包含了在整个被查找字符串中匹配的子字符串的位置。字符串的位置。LastIndex 属性包含了最后一次匹属性包含了最后一次匹配中最后一个字符的下一个位置。配中最后一个字符的下一个位置。Stefanie22RUN正则表达式正则表达式match方法方法Stef
11、anie23正则表达式正则表达式replace方法方法vstr.replace(reg,replaceText)返回根据正则表达式进行文字替换后的字符串的复返回根据正则表达式进行文字替换后的字符串的复制;制;str:被被查找的字符串查找的字符串;reg:要匹配的模式;要匹配的模式;replaceText:是一个:是一个String String 对象或字符串文字,对对象或字符串文字,对于于stringObj stringObj 中每个匹配中每个匹配 rgExp rgExp 中的位置都用该对中的位置都用该对象所包含的文字加以替换;象所包含的文字加以替换;replace 方法的结果是一个完成了指定
12、替换的方法的结果是一个完成了指定替换的 stringObj 对象的复制。对象的复制。Stefanie24RUN正则表达式正则表达式replace方法方法Stefanie25正则表达式正则表达式search方法方法vstr.search(reg)返回与正则表达式查找内容匹配的第一个子字符串返回与正则表达式查找内容匹配的第一个子字符串的位置的位置;str:被:被查找的字符串;查找的字符串;reg:要匹配的模式:要匹配的模式;search 方法指明是否存在相应的匹配。如果找到一方法指明是否存在相应的匹配。如果找到一个匹配,个匹配,search 方法将返回一个整数值,指明这个方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回配,则返回-1。Stefanie26RUN正则表达式正则表达式search方法方法Stefanie27正则表达式正则表达式应用实例应用实例1v交换句子中的每对单词交换句子中的每对单词 RUNStefanie28正则表达式正则表达式应用实例应用实例2v华氏温度转为摄氏度华氏温度转为摄氏度RUNStefanie29正则表达式正则表达式应用实例应用实例3v用正则表达式检验邮件填写是否正确用正则表达式检验邮件填写是否正确RUN