半小时精通正则表达式

合集下载

正则表达式快速入门

正则表达式快速入门

教程精选:正则表达式快速入门作者:开心石头出处:天极网责任编辑:wenwu[ 2005-12-02 11:06 ]【导读】正则表达式是从左向右去匹配目标字符串的一组模式。

大多数字符在模式中表示它们自身并匹配目标中相应的字符正则表达式广泛出现在UNIX/Linux相关的各种领域和多种编程语言里。

从常见的shell命令到大名鼎鼎的Perl语言再到当前非常流行的PHP,它都扮演着一个重要的角色。

甚至windows的命令行控制台也支持正则表达式。

如果你是一个Linux服务器管理员,你经常会在一些服务器的设置脚本里看到它。

可以说,它是学好Linux/UNIX必需掌握的一个知识点,否则你连Linux的启动脚本都读不懂。

偏偏它又的确有点晦涩难懂,而且相关的资料又大部分是英文,更为它的学习增加了几多困难。

即使有些中文的翻译资料,不同的译者对一些术语的译法也五花八门,读着让人平添困惑。

为此,我决定为它写一个简明教程,尽量可以覆盖正则表达式涉及到的各主要概念。

我并不想把本文写成一本详细的正则表达式语法手册,事实上,这些手册已经存在了,不过读起来比较难懂。

我希望的是在完成本教程后,你可以比较轻松的读懂各种工具的正则表达式语法手册并可以迅速上手,不过要用好正则表达式,可不是一篇短短的教程可以解决的,那是无数实践练习的结果。

但是,本文的最后一部分对于正则表达式的编写提出了一些原则性的建议,学习一下这些正则表达式应用先驱者的经验会让我们在今后的实践中少走一些弯路。

正则表达式是英文“regular expressions”的译文,它的产生据说可以追溯到“神经网络”等比较高深的理论。

那么什么是正则表达式呢?正则表达式是从左向右去匹配目标字符串的一组模式。

大多数字符在模式中表示它们自身并匹配目标中相应的字符。

举个最简单的例子,模式“The quick brown fox”匹配了目标字符串中与其完全相同的一部分。

前面已经提过,正则表达式被许多植根于UNIX/Linux的工具采用,可是这些工具的正则表达式语法并不完全相同,它们中的一些对正则表达式语法的扩展并不被其它工具识别,这也为正则表达式的使用增加了难度。

55分钟学会正则表达式

55分钟学会正则表达式

55 分钟学会正则表达式正则表达式(“regexes”)即增强查找/字符串替换操作。

当在文本编辑器中编辑文字时,正则表达式经常用 于:   检查文本是否包含一个给定的模式 查找任何匹配的模式 从文本中拉取信息(比如截断) 修改文本和文本编辑器一样,绝大多数高级编程语言支持正则表达式。

在本文中,“文本”仅仅是一个字符串变量,但 是有效的操作却是一致的。

某些编程语言(Perl,JavaScript)甚至为正则表达式提供专用的语法。

但是正则表达式是什么? 一个正则表达式仅仅为一个字符串。

它没有长度限制,但是通常该字符串很短。

下面看几个例子:     I had a \S+ day today [A-Za-z0-9\-_]{3,16} \d\d\d\d-\d\d-\d\d v(\d+)(\.\d+)* TotalMessages="(.*?)" <[^<>]>这个字符串实际上是一个极小的计算程序,并且正则表达式是一门语法小而简洁,领域特定的编程语言。

牢 记以下几点,它们不该在学习过程中让你感到惊讶:    每个正则表达式都能分解成一串指令。

“找到这个,再找到那个,然后找到其中一个...” 一个正则表达式拥有输入(文本)和输出(模式匹配,和有些时候的自定义文本)。

存在语法错误——不是每个字符串都是合法的正则表达式! 语法有些怪异,也可以说是恐怖。

一个正则表达式有时候可以被编译以便更快运行。

正则实现一直有着显著的改变。

对于本文,我所关注的是那些几乎每个正则表达式都实现了的核心语法。

练习 获取一个支持正则的文本编辑器。

我推荐 Notepad++。

下载一篇很长的散文故事比如 Gutenberg 出版社出版的 H. G. Wells 的《时光机器》然后打开它。

下载一部字典,比如这个,解压然后打开。

一切准备就绪,稍后开始练习。

提示: 正则表达式与文件通配符语法完全不兼容,比如*.xml。

正则表达式30分钟入门教程——堪称网上能找到的最好的正则式入门教程

正则表达式30分钟入门教程——堪称网上能找到的最好的正则式入门教程

正则表达式30分钟⼊门教程——堪称⽹上能找到的最好的正则式⼊门教程本教程堪称⽹上能找到的最好正则表达式⼊门教程本⽂⽬标30分钟内让你明⽩正则表达式是什么,并对它有⼀些基本的了解,让你可以在⾃⼰的程序或⽹页⾥使⽤它。

如何使⽤本教程最重要的是——请给我30分钟,如果你没有使⽤正则表达式的经验,请不要试图在30秒内⼊门——除⾮你是超⼈ :)别被下⾯那些复杂的表达式吓倒,只要跟着我⼀步⼀步来,你会发现正则表达式其实并没有想像中的那么困难。

当然,如果你看完了这篇教程之后,发现⾃⼰明⽩了很多,却⼜⼏乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的⼈在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。

这⾥只是让你明⽩基本的原理,以后你还需要多练习,多使⽤,才能熟练掌握正则表达式。

除了作为⼊门教程之外,本⽂还试图成为可以在⽇常⼯作中使⽤的正则表达式语法参考⼿册。

就作者本⼈的经历来说,这个⽬标还是完成得不错的——你看,我⾃⼰也没能把所有的东西记下来,不是吗?⽂本格式约定:专业术语元字符/语法格式正则表达式正则表达式中的⼀部分(⽤于分析) 对其进⾏匹配的源字符串对正则表达式或其中⼀部分的说明本⽂右边有⼀些注释,主要是⽤来提供⼀些相关信息,或者给没有程序员背景的读者解释⼀些基本概念,通常可以忽略。

正则表达式到底是什么东西?字符是计算机软件处理⽂字时最基本的单位,可能是字母,数字,标点符号,空格,换⾏符,汉字等等。

字符串是0个或更多个字符的序列。

⽂本也就是⽂字,字符串。

说某个字符串匹配某个正则表达式,通常是指这个字符串⾥有⼀部分(或⼏部分分别)能满⾜表达式给出的条件。

在编写处理字符串的程序或⽹页时,经常会有查找符合某些复杂规则的字符串的需要。

正则表达式就是⽤于描述这些规则的⼯具。

换句话说,正则表达式就是记录⽂本规则的代码。

很可能你使⽤过Windows/Dos下⽤于⽂件查找的通配符(wildcard),也就是*和?。

正则表达式30分钟入门教程

正则表达式30分钟入门教程

正则表达式30分钟入门教程正则表达式是一种强大的文本匹配工具,可以在大量的文本数据中进行快速、准确的模式匹配和提取。

对于需要处理文本数据的开发人员和数据分析师来说,掌握正则表达式是非常重要的。

本文将带您在30分钟内入门正则表达式,让您能够快速上手使用。

一、什么是正则表达式?正则表达式是一种用于匹配、查找和替换文本的字符串模式。

它使用特定的语法规则来描述要匹配的字符序列。

正则表达式可以用于验证输入的有效性、从文本中提取特定的信息、替换文本中的指定部分等。

二、正则表达式的基本语法1. 字符匹配:正则表达式中的普通字符表示匹配该字符本身。

例如,正则表达式abc可以匹配字符串abc。

2. 字符类:用方括号[]表示,可以匹配方括号中任意一个字符。

例如,正则表达式[abc]可以匹配字符串a、b或c。

3. 量词:用于指定匹配的次数。

例如,正则表达式a{3}可以匹配3个连续的a字符。

4. 选择符:用竖线|表示,可以匹配多个模式中的一个。

例如,正则表达式a|b可以匹配字符串a或b。

5. 边界匹配:用于限定匹配的位置。

例如,^表示匹配字符串的开头,$表示匹配字符串的结尾。

三、常用的正则表达式示例1. 匹配手机号码:^\d{11}$2. 匹配邮箱地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$3. 匹配身份证号码:^\d{17}[\dXx]$4. 匹配URL地址:^[a-zA-Z]+://[^\s]*$5. 匹配日期:^\d{4}-\d{2}-\d{2}$6. 匹配IP地址:^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$四、常用的正则表达式工具1. 在Python中,可以使用re模块来操作正则表达式。

2. 在JavaScript中,可以使用RegExp对象来操作正则表达式。

3. 在文本编辑器中,可以使用正则表达式进行查找和替换。

五、常见问题解答问:如何匹配一个或多个任意字符?答:可以使用点号.来匹配一个任意字符,使用点号加上量词*来匹配一个或多个任意字符。

正则表达式-语法大全

正则表达式-语法大全

正则表达式-语法⼤全1. 正则表达式规则1.1 普通字符字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。

表达式中的普通字符,在匹配⼀个字符串的时候,匹配与之相同的⼀个字符。

,匹配结果是:成功;匹配到的内容是:"c";匹配到的位置是:开始于2,结束于3。

(注:下标从0开始还是从1开始,因当前编程语⾔的不同⽽可能不同),匹配结果是:成功;匹配到的内容是:"bcd";匹配到的位置是:开始于1,结束于4。

1.2 简单的转义字符⼀些不便书写的字符,采⽤在前⾯加 "/" 的⽅法。

这些字符其实我们都已经熟知了。

表达式可匹配/r, /n代表回车和换⾏符/t制表符//代表 "/" 本⾝还有其他⼀些在后边章节中有特殊⽤处的标点符号,在前⾯加 "/" 后,就代表该符号本⾝。

⽐如:^, $ 都有特殊意义,如果要想匹配字符串中 "^" 和 "$" 字符,则表达式就需要写成 "/^" 和 "/$"。

表达式可匹配/^匹配 ^ 符号本⾝/$匹配 $ 符号本⾝/.匹配⼩数点(.)本⾝这些转义字符的匹配⽅法与 "普通字符" 是类似的。

也是匹配与之相同的⼀个字符。

,匹配结果是:成功;匹配到的内容是:"$d";匹配到的位置是:开始于3,结束于5。

1.3 能够与 '多种字符' 匹配的表达式正则表达式中的⼀些表⽰⽅法,可以匹配 '多种字符' 其中的任意⼀个字符。

⽐如,表达式 "/d" 可以匹配任意⼀个数字。

虽然可以匹配其中任意字符,但是只能是⼀个,不是多个。

这就好⽐玩扑克牌时候,⼤⼩王可以代替任意⼀张牌,但是只能代替⼀张牌。

正则表达式(正则表达式括号的作用)

正则表达式(正则表达式括号的作用)

正则表达式(正则表达式括号的作⽤)正则表达式之前学习的时候,因为很久没怎么⽤,或者⽤的时候直接找⽹上现成的,所以都基本忘的差不多了。

所以这篇⽂章即是笔记,也让⾃⼰再重新学习⼀遍正则表达式。

其实平时在操作⼀些字符串的时候,⽤正则的机会还是挺多的,之前没怎么重视正则,这是⼀个错误。

写完这篇⽂章后,发觉⼯作中很多地⽅都可以⽤到正则,⽽且⽤起来其实还是挺爽的。

正则表达式作⽤ 正则表达式,⼜称规则表达式,它可以通过⼀些设定的规则来匹配⼀些字符串,是⼀个强⼤的字符串匹配⼯具。

正则表达式⽅法基本语法,正则声明js中,正则的声明有两种⽅式1. 直接量语法:1var reg = /d+/g/2. 创建RegExp对象的语法1var reg = new RegExp("\\d+", "g");这两种声明⽅式其实还是有区别的,平时的话我⽐较喜欢第⼀种,⽅便⼀点,如果需要给正则表达式传递参数的话,那么只能⽤第⼆种创建RegExp的形式格式:var pattern = new RegExp('regexp','modifier');regexp:匹配的模式,也就是上⽂指的正则规则。

modifier: 正则实例的修饰符,可选值有:i : 表⽰区分⼤⼩写字母匹配。

m :表⽰多⾏匹配。

g : 表⽰全局匹配。

传参的形式如下:我们⽤构造函数来⽣成正则表达式1var re = new RegExp("^\\d+$","gim");这⾥需要注意,反斜杠需要转义,所以,直接声明量中的语法为\d,这⾥需要为\\d那么,给它加变量,就和我们前⾯写的给字符串加变量⼀样了。

1 2var v = "bl";var re =new RegExp("^\\d+" + v + "$","gim"); // re为/^\d+bl$/gim⽀持正则的STRING对象⽅法1. search ⽅法作⽤:该⽅法⽤于检索字符串中指定的⼦字符串,或检索与正则表达式相匹配的字符串基本语法:stringObject.search(regexp);返回值:该字符串中第⼀个与regexp对象相匹配的⼦串的起始位置。

正则表达式记忆方法

正则表达式记忆方法

正则表达式记忆方法宝子!今天咱来唠唠正则表达式咋记。

正则表达式刚瞅的时候,就像一堆乱码似的,可吓人了。

咱先从那些基本的元字符开始哈。

像那个“.”,你就把它想成是个“小百搭”,它能匹配除了换行符之外的任何单个字符呢。

就好像是一个啥都能接的小助手,特别好记。

还有那个“*”,这就像是个贪心鬼。

它表示前面的字符可以出现零次或者多次。

你就想象它是个小馋猫,能把前面的字符吃好多好多遍,也可以一口都不吃。

比如说“a*”,那就是可以有好多好多的“a”,也可以一个“a”都没有。

“+”这个呢,和“*”有点像,但它至少得出现一次。

就好比是个有点小傲娇的家伙,必须得有,不能没有。

“a+”就是至少有一个“a”。

再来说说那些字符类。

“[]”里面放的就是一群字符,它表示匹配其中的任意一个字符。

你可以把它想象成是个小盒子,里面装着各种小宝贝,只要是盒子里的,都能被选中。

比如说“[abc]”,那就是“a”或者“b”或者“c”都能匹配到。

还有那个“^”,在方括号里面的时候,它就变成了“反着来”的意思。

比如说“[^abc]”,就是除了“a”“b”“c”之外的任何字符。

这就像一个叛逆的小娃娃,专门和里面的字符对着干。

要是说匹配数字呢,“\d”就很好记啦,你就想成是“digit(数字)”的缩写,它就是专门匹配数字的。

那要是想匹配非数字呢,“\D”就闪亮登场啦,它和“\d”就是相反的。

对于字母和数字的组合,“\w”就像是个小收纳盒,它能匹配字母、数字或者下划线。

你就想象它把这些都打包在一起了。

“\W”呢,自然就是和它相反的啦。

宝子,你看这么想的话,正则表达式是不是就没那么可怕啦?其实就把它当成是一群有个性的小卡通人物,每个都有自己独特的本事,记起来就容易多啦。

咱多玩几次,多试几次,慢慢就熟练掌握这个正则表达式的小世界啦。

正则表达式入门教程

正则表达式入门教程

正则表达式入门教程以下内容经正则表达式学习网授权≈正则表达式是什么?≈在使用电脑进行各种文字处理的时候,我们有时需要查找和匹配一些特殊的字符串,如邮箱地址、验证用户输入的密码是否包含了大小写字母和数字,查找HTML源文档中的所有web地址等等,这时我们就可以使用到正则表达式。

正则表达式本身是一个“字符串”,通过这个“字符串”去描述字符组成规则。

如abbb、abbbb、abbbbb这三个字符串包都是以a字母开头a后面有一个b字母,而且b字母重复了3到5次。

用正则表达式来描述就是ab{3,5},b{3,5}表示b字符重复3到5次。

如果我们想匹配ababab这样的字符串,ab重复了3次,用正则表达式表示就是(ab){3},圆括号()是正则表达式中的分组。

大家如果想亲自感受正则表达式的使用效果,可以打开正则表达式测试系统。

如以上实例所展示的,正则表达式为人们提供了一种简单易用的字符处理工具。

它在目前主流的文字处理软件中都提供了良好的支持(不仅是编程软件,还有文字处理软件Uedit32、EditPlus,网页采集软件火车头等等),它具有很强的通用性,学好它,我们可以达一变应万变的效果。

≈正则表达式详解≈像{},()这种在正则表达式中,具有特殊含义的字符称为元字符(metacharacter)。

元字符是组成正则表达式的基本元素,在正则表达式经常使用的元字符不是很多,概念容易理解。

大家只要花30来分钟学完我们的教程基本上就可以完全掌握。

为了您能更快速的掌握正则表达式,我们为您推荐一款方便的正则表达式在线测试工具“RegExr”,(RegExr由免费提供)。

保留字符匹配字符本身匹配字符数量匹配字符位置分组匹配表达式选项保留字符(返回目录)在正则表达式中,有一些字符在正则表达式中具有特殊含义被称保留字符,如*表示前一个元素可以重复零次或多次,要匹配“*”字符本身使用\*,半角句号.匹配除了换行符外的所有字符,要匹配“.”使用\.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

相册广场游戏河外星系的船长退出关注此空间vbs小铺平静的力量在深的海半小时精通正则表达式2006-10-21 17:25跟我学正则表达式!想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可以理解的表达方式.来和大家分享学习经验.开篇,还是得说说 ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明"^The": 开头一定要有"The"字符串;"of despair$": 结尾一定要有"of despair" 的字符串;那么,"^abc$": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配"notice": 匹配包含notice的字符串你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边接着,说说 '*', '+',和 '?',他们用来表示一个字符可以出现的次数或者顺序. 他们分别表示:"zero or more"相当于{0,},"one or more"相当于{1,},"zero or one."相当于{0,1}, 这里是一些例子:"ab*": 和ab{0,}同义,匹配以a开头,后面可以接0个或者N个b组成的字符串("a", "ab", "abbb", 等);"ab+": 和ab{1,}同义,同上条一样,但最少要有一个b存在 ("ab", "abbb", 等.);"ab?":和ab{0,1}同义,可以没有或者只有一个b;"a?b+$": 匹配以一个或者0个a再加上一个以上的b结尾的字符串.要点, '*', '+',和 '?'只管它前面那个字符.你也可以在大括号里面限制字符出现的个数,比如"ab{2}": 要求a后面一定要跟两个b(一个也不能少)("abb");"ab{2,}": 要求a后面一定要有两个或者两个以上b(如"abb", "abbbb", 等.);"ab{3,5}": 要求a后面可以有2-5个b("abbb", "abbbb", or "abbbbb").现在我们把一定几个字符放到小括号里,比如:"a(bc)*": 匹配 a 后面跟0个或者一个"bc";"a(bc){1,5}": 一个到5个 "bc."还有一个字符 '│', 相当于OR 操作:"hi│hello": 匹配含有"hi" 或者 "hello" 的 字符串;"(b│cd)ef": 匹配含有 "bef" 或者 "cdef"的字符串;"(a│b)*c": 匹配含有这样多个(包括0个)a或b,后面跟一个c的字符串;一个点('.')可以代表所有的单一字符,不包括"\n"如果,要匹配包括"\n"在内的所有单个字符,怎么办?对了,用'[\n.]'这种模式."a.[0-9]": 一个a加一个字符再加一个0到9的数字"^.{3}$": 三个任意字符结尾 .中括号括住的内容只匹配一个单一的字符"[ab]": 匹配单个的 a 或者 b ( 和 "a│b" 一样);"[a-d]": 匹配'a' 到'd'的单个字符 (和"a│b│c│d" 还有 "[abcd]"效果一样); 一般我们都用[a-zA-Z]来指定字符为一个大小写英文"^[a-zA-Z]": 匹配以大小写字母开头的字符串"[0-9]%": 匹配含有 形如 x% 的字符串",[a-zA-Z0-9]$": 匹配以逗号再加一个数字或字母结尾的字符串你也可以把你不想要得字符列在中括号里,你只需要在总括号里面使用'^' 作为开头 "%[^a-zA-Z]%" 匹配含有两个百分号里面有一个非字母的字符串.要点:^用在中括号开头的时候,就表示排除括号里的字符为了PHP能够解释,你必须在这些字符面前后加'',并且将一些字符转义.不要忘记在中括号里面的字符是这条规路的例外—在中括号里面, 所有的特殊字符,包括(''), 都将失去他们的特殊性质 "[*\ +?{}.]"匹配含有这些字符的字符串.还有,正如regx的手册告诉我们: "如果列表里含有 ']', 最好把它作为列表里的第一个字符(可能跟在'^'后面). 如果含有'-', 最好把它放在最前面或者最后面, or 或者一个范围的第二个结束点[a-d-0-9]中间的‘-’将有效.看了上面的例子,你对{n,m}应该理解了吧.要注意的是,n和m都不能为负整数,而且n总是小于m. 这样,才能 最少匹配n次且最多匹配m次. 如"p{1,5}"将匹配 "pvpppppp"中的前五个p下面说说以\开头的\b 书上说他是用来匹配一个单词边界,就是...比如've\b',可以匹配love里的ve而不匹配very里有ve\B 正好和上面的\b相反.例子我就不举了.....突然想起来....可以到/article.php/251看看其它用\ 开头的语法好,我们来做个应用:如何构建一个模式来匹配 货币数量 的输入构建一个匹配模式去检查输入的信息是否为一个表示money的数字。

我们认为一个表示money的数量有四种方式: "1000 0.00" 和 "10,000.00",或者没有小数部分, "10000" and "10,000". 现在让我们开始构建这个匹配模式:^[1-9][0-9]*$这是所变量必须以非0的数字开头.但这也意味着 单一的 "0" 也不能通过测试. 以下是解决的方法:^(0│[1-9][0-9]*)$"只有0和不以0开头的数字与之匹配",我们也可以允许一个负号在数字之前:^(0│-?[1-9][0-9]*)$这就是: "0 或者 一个以0开头 且可能 有一个负号在前面的数字." 好了,现在让我们别那么严谨,允许以0开头.现在让我们放弃 负号 , 因为我们在表示钱币的时候并不需要用到. 我们现在指定 模式 用来匹配小数部分:^[0-9]+(\.[0-9]+)?$这暗示匹配的字符串必须最少以一个阿拉伯数字开头. 但是注意,在上面模式中 "10." 是不匹配的, 只有 "10" 和 "10.2" 才可以. (你知道为什么吗)^[0-9]+(\.[0-9]{2})?$我们上面指定小数点后面必须有两位小数.如果你认为这样太苛刻,你可以改成:^[0-9]+(\.[0-9]{1,2})?$这将允许小数点后面有一到两个字符. 现在我们加上用来增加可读性的逗号(每隔三位), 我们可以这样表示:^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$不要忘记 '+' 可以被 '*' 替代 如果你想允许空白字符串被输入话 (为什么?). 也不要忘记反斜杆 ’\’ 在php字符串中可能会出现错误 (很普遍的错误).现在,我们已经可以确认字符串了, 我们现在把所有逗号都去掉 str_replace(",", "", $money) 然后在把类型看成 double然后我们就可以通过他做数学计算了.再来一个:构造检查email的正则表达式在一个完整的email地址中有三个部分:1. 用户名 (在 '@' 左边的一切),2.'@',3. 服务器名(就是剩下那部分).用户名可以含有大小写字母阿拉伯数字,句号 ('.'), 减号('-'), and 下划线 ('_'). 服务器名字也是符合这个规则,当然下划线除外.现在, 用户名的开始和结束都不能是句点. 服务器也是这样. 还有你不能有两个连续的句点他们之间至少存在一个字符,好现在我们来看一下怎么为用户名写一个匹配模式:^[_a-zA-Z0-9-]+$现在还不能允许句号的存在. 我们把它加上:^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*$上面的意思就是说: "以至少一个规范字符(除了.)开头,后面跟着0个或者多个以点开始的字符串."简单化一点, 我们可以用 eregi()取代 ereg().eregi()对大小写不敏感, 我们就不需要指定两个范围 "a-z" 和 "A-Z" – 只需要指定一个就可以了:^[_a-z0-9-]+(\.[_a-z0-9-]+)*$后面的服务器名字也是一样,但要去掉下划线:^[a-z0-9-]+(\.[a-z0-9-]+)*$好. 现在只需要用”@”把两部分连接:^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$这就是完整的email认证匹配模式了,只需要调用eregi(‘^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$ ’,$eamil)就可以得到是否为email了正则表达式的其他用法提取字符串ereg() and eregi() 有一个特性是允许用户通过正则表达式去提取字符串的一部分(具体用法你可以阅读手册). 比如说,我们想从 path/URL 提取文件名 – 下面的代码就是你需要:ereg("([^\\/]*)$", $pathOrUrl, $regs);echo $regs[1];高级的代换ereg_replace() 和 eregi_replace()也是非常有用的: 假如我们想把所有的间隔负号都替换成逗号:ereg_replace("[ \n\r\t]+", ",", trim($str));最后,我把另一串检查EMAIL的正则表达式让看文章的你来分析一下."^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_` a-z{|}~]+$"如果能方便的读懂,那这篇文章的目的就达到了.#转载教程分享到:浏览(1070)评论(1) 转载帮助中心 | 空间客服 | 投诉中心 | 空间协议 ©2014 Baidu你可能也喜欢叶当我遇上虞美人。

相关文档
最新文档