频道直达 - 专题 - 新闻 - 基础 - 高级 - 安装 - 技巧 - 数据库 - 手册 - PHP - Linux - Java - MySQL - Apache - 麻辣堂 - 狼盟 - Rails社群 - 搜索 - 下载 - 开源 - 论坛

正则表达式函数库

来源:www.phpres.com 作者:Angelover 出处:www.phpres.com 2007-9-21 17:48:23 进入讨论组
关 键 词: 函数 字符串 string 返回 处理 比对 解析 大小 regs pattern

关于正则表达式 (Regular expression),似乎译成:字符串解析处理,较合乎字面上的意义。但目前所有的相关书籍都译成正则表达式或是正规表示法....等等,实际上是负责字符串解析比对,并对字符串做相关的处理。

    本函数库让 PHP 也能处理复杂的字符串操作。它采用了 POSIX 1003.2 的扩充常规处理 (regular expression) 的标准。更多关于正则表达式的信息可以参考 UNIX Shell、Perl 或是 awk 等相关的书籍。网络上也有张耀仁先生所作的 正规表示式的入门与应用 文章。



ereg: 字符串比对解析。

ereg_replace: 字符串比对解析并取代。

eregi: 字符串比对解析,与大小写无关。

eregi_replace: 字符串比对解析并取代,与大小写无关。

split: 将字符串依指定的规则切开。

sql_regcase: 将字符串逐字返回大小写字符。


ereg

字符串比对解析。

语法: int ereg(string pattern, string string, array [regs]);

返回值: 整数/数组

函数种类: 资料处理

内容说明: 本函数以 pattern 的规则来解析比对字符串 string。比对结果返回的值放在数组参数 regs 之中,regs[0] 内容就是原字符串 string、regs[1] 为第一个合乎规则的字符串、regs[2] 就是第二个合乎规则的字符串,余类推。若省略参数 regs,则只是单纯地比对,找到则返回值为 true。

使用范例

这个例子是 markus@dnet.it 在 14-Jun-1999 所提出的,可对使用者输入的 E-Mail 作简单的检查,检查使用者的 E-Mail 字符串是否有 @ 字符,在 @ 字符前有英文字母或数字,在之后有数节字符串,最后的小数点后只能有二个或三个英文字母。super@mail.wilson.gs 就可以通过检查,super@mail.wilson 就不能通过检查。

<?php

if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]$",$email)) {

echo "您的 E-Mail 通过初步检查";

}

?>

参考: ereg_replace() eregi() eregi_replace()


ereg_replace

字符串比对解析并取代。

语法: string ereg_replace(string pattern, string replacement, string string);

返回值: 字符串

函数种类: 资料处理

内容说明: 本函数以 pattern 的规则来解析比对字符串 string,欲取而代之的字符串为参数 replacement。返回值为字符串类型,为取代后的字符串结果。

使用范例

ken@freebsdrocks.com 在 16-Mar-1999 提出的例子。

<?php

$text = 'This is a day, not and .';

$daytype = array( 1 => 'fine',

2 => 'overcast',

3 => 'rainy' );

while (ereg ('', $text, $regs)) {

$found = $regs[1];

$text = ereg_replace("", $daytype[$found], $text);

}

echo "$text ";

// This is a fine day, not overcast and rainy.

?>

ken@freebsdrocks.com 并同时提出具有相同功能的perl 程序范例如下:

$text = 'This is a day, not and .';

%daytype = ( 1 => 'fine',

2 => 'overcast',

3 => 'rainy' );

$text =~ s//$daytype{}/eg;

print "$text ";


参考: ereg() eregi() eregi_replace()


eregi

字符串比对解析,与大小写无关。

语法: int eregi(string pattern, string string, array [regs]);

返回值: 整数/数组

函数种类: 资料处理

内容说明: 本函数和 ereg() 类似,用法也相同。不同之处在于 ereg() 有区分大小写,本函数与大小写无关。

参考: ereg() ereg_replace() eregi_replace()


eregi_replace

字符串比对解析并取代,与大小写无关。

语法: string eregi_replace(string pattern, string replacement, string string);

返回值: 字符串

函数种类: 资料处理

内容说明: 本函数和 ereg_replace() 类似,用法也相同。不同之处在于 ereg_replace() 有区分大小写,本函数与大小写无关。

参考: ereg() ereg_replace() eregi()


split

将字符串依指定的规则切开。

语法: array split(string pattern, string string, int [limit]);

返回值: 数组

函数种类: 资料处理

内容说明: 本函数可将字符串依指定的规则分开。切开后的返回值为数组变量。参数 pattern 为指定的规则字符串、参数 string 则为待处理的字符串、参数 limit 可省略,表示欲处理的最多合乎值。值得注意的是本函数的 pattern 参数有区分大小写。

参考: explode() implode()


sql_regcase

将字符串逐字返回大小写字符。

语法: string sql_regcase(string string);

返回值: 数组

函数种类: 资料处理

内容说明: 本函数可将字符串之字符逐字返回大小写。在 PHP 使用上,本函数没有什么作用,但可能可以提供外部程序或数据库处理。

使用范例

例中的返回字符串为 [Ww][Ii][Ll][Ss][Oo][Nn]

<?php

print(sql_regcase("wilson"));

?>

欢迎进入PHP开发资源论坛讨论。
收藏此文】【 】【打印】【关闭
相关文章
图文推荐
论 坛 资 源
PHP开发资源网奋斗目标
阅读排行:
热门技术文档
最新图文档
本站编辑推荐:(本站开通Delphi4PHP专区,欢迎进入论坛交流!)
编缉最近更新文章
网站赞助商
搜索您感兴趣的内容
 
   网站首页 -  网站地图 -  网站合作 -  手册中心 -  通用网址 -  网站论坛 -  网站投稿 -  友情链接 -  帮助中心
版权所有:PHP开发资源网 © 2003-2008 通用网址:PHP资源网 合作媒体: 赛迪网IT技术
互联网违法和不良信息举报中心 | 不良信息举报信箱