php和正则表达式

来自:swords的blog  一个正则表达式是一个特定的格式化模式,可以用来找出一个字符串在另一个字符串中的使用情况。几个编程语言,包括visual basic,perl,&#106avascript和php都支持正则表达式,希望在这篇入门指导的结束,mitchell(作者自己)可以让你在php程序中能应用一些基本的正则表达式。正则表达式是在各种各样的程序语言中突出的古怪特征中的一种,但是由于它们看起来是很难的一个概念,所以很多开发者就把它们放到了角落里,忘记了它们的存在。 让我们先来看看什么是正则表达式,为什么你要在php程序中用到它们。 什么是正则表达式? 你对从一个不错的老的基于控制的文本编辑器中分离出像bbedit和notepad的程序,有什么看法呢?两个都支持文本输入,可以让你保存文本到文件中,但是现在的文本编辑器也支持其它功能,包括查找–代替工具,这让编辑一个文本文件相当容易。 正则表达式也是相似的,只是更好一些。正则表达式可以被认为一个极其高级的查找-替换工具,让我们从痛苦中摆脱出来:不必再写定制的数据确认例子来检查电子邮件地址或者来确认电话号码的格式是正确的,如此等等。 任何程序中最普通的函数之一就是数据有效性检查,php捆绑了一些文本检查函数,允许我们用正则表达式匹配一个字符串,确认有一个空格,有一个问号,等等。 你不知道的可能是,正则表达式可以简单装备吗,当你掌握了一些正则表达式时(这个正则表达式可以用来告诉正则表达式引擎一个字符串中我们想要匹配的部分),你会自问为什么会把正则表达式扔到角落里这么久,^_^。 php有两套函数,用来处理两种类型的正则表达式:perl5兼容模式,和posix标准兼容模式。在这篇文章中我们将看看ereg函数,用遵照posix标准的搜索表达式工作。虽然它们并没有perl5模式那样强大,但是一种不错的学习正则表达式的方法。如果你对php支持的perl5兼容正则表达式感兴趣,可以到php.net网站找一些关于preg函数的细节。 php有六个函数来处理正则表达式,它们都把一个正则表达式作为它们的第一个参数,列出如下:

… 或者使用下面的代码: 可以肯定的是,第一个函数比较容易,而且看起来结构也不错。但是如果我们用上面的下一个版本的email地址检查函数不是更容易吗? 上面展示的第二个函数只用了正则表达式,包括了对ereg函数的一个调用。ereg 函数返回true或者false,来声明它的字符串参数是否和正则表达式相匹配。 很多编程者避开正则表达式,只因为它们(在一些情况下)比其它的文本处理方法更慢。正则表达式可能慢的原因是因为它们涉及把字符串在内存中拷贝和粘贴,因为正则表达式的每一个新的部分都对应匹配一个字符串。但是,从我对正则表达式的经验来说,除非你在文本中几百个行运行一个复杂的正则表达式,否则性能上的缺陷都可以忽略不计,当把正则表达式作为输入数据检查工具时,也很少出现这种情况。 正则表达式语法 在你可以匹配一个字符串到正则表达式之前,你必须先建立正则表达式。开始的时候,正则表达式的语法有点古怪,表达式中的每一个短语代表某个类型的搜索特征。下列是一些最普通的正则表达式,也都对应着一个如何使用它的例子: 字符串头部 搜索一个字符串的头部,用^,例如

Posted in 未分类