动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   PHP → 阅读文章

 正则表达式函数库

作者来源: 
阅读 数 209 人次 , 2006-3-29 4:06:00 


关于正则表达式 (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]{2,3}$",$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 {1} day, not {2} and {3}.';
$daytype = array( 1 => 'fine',
2 => 'overcast',
3 => 'rainy' );
while (ereg ('{([0-9]+)}', $text, $regs)) {
$found = $regs[1];
$text = ereg_replace("\{".$found."\}", $daytype[$found], $text);
}
echo "$text\n";
// this is a fine day, not overcast and rainy.
?>
ken@freebsdrocks.com 并同时提出具有相同功能的perl 程序范例如下:
$text = 'this is a {1} day, not {2} and {3}.';
%daytype = ( 1 => 'fine',
2 => 'overcast',
3 => 'rainy' );
$text =~ s/{(\d+)}/$daytype{$1}/eg;
print "$text\n";

参考: 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"));
?>

 本文Tags正则表达式  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:信号与共享内存函数库
· 下一篇:PostgreSQL 数据库函数库
· ubbcode类
· 目前国内的主流程序主要存在以下问题
· 轻型数据库SQLite结合PHP的开发
· PHP4实际应用经验篇(3)
· 通过Include和Require函数实现代码重用


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077