教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> PHP >> 正则表达式的基本用法 RSS订阅
正则表达式的基本用法
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

大家都知道,  正则表达式在处理字串方面,  大大的方便了许许多多的PHP程式设计师. 
但对于想学正则表达式的初学者而言,  多多少少有一些问题,  我想以下的解释或多或少都会有所帮助吧  :) 

通常上,  正则表达式会用到以下的几个"符号": 
^  -  代表字串前面一定要有这样的字,  如^http://,  代表前面一定要有http:// 
$  -  代表字串后面一定要有这样的字. 
?  (一个问号)  -  它代表一个或没有字元 
*  (一个*)  -  它代表没有或者更多前面的字元 
.  (一个句点)  -  它代表任何一个字元 
+  (一个加)    -  它代表至少一个或更多前面的字元 
[xyz]  -  它代表任何一个字元,  或x,  或y,  或z 
[a-z]  -  它代表任何一个字元,  由a至z 
[[:alnum:]]  -  代表由a至z,  0至9 
[[:digit:]]  -  代表由0至9 

当使用正则表达式时,  必需注意ereg及eregi可大大不同喔~ 
ereg是非常敏感的  (意即大小字母都分得非常清楚),  而eregi则不是  (只要记着i代表case-insensitive就可以了) 

这里举一些例子: 

$regexp  =  eregi("a?c",  "abc");  //--  这是对的,  因?可以代表"一个"或没有字元 
$regexp  =  eregi("a?c",  "ac");  //--  这也是对的,  因?可以代表一个或"没有"字元 
$regexp  =  eregi("a?c",  "a");  //--  这样就不对了,  纵使有a,  可是还是要有c 

$regexp  =  eregi("[abc]",  "a");  //--  这是对的,  因a是大括号里的其中一个字元 
$regexp  =  eregi("[a-z]",  "c");  //--  这是对的,  因c包括在a至z里 
$regexp  =  eregi("[a-z]",  "0");  //--  这是不对的,  因0并不包括在a至z里面 

$regexp  =  eregi("a.c",  "abc");  //--  这是对的,  因一个.代表"任何"一个字 
$regexp  =  eregi("a.c",  "ac");  //--  这可就不对了,  因.代表"一个"字元,  所以放abbc也是不对的 

$regexp  =  eregi("a+c",  "aaaac");  //--  这是对的,  因+代表一人或"更多"前面的字元 
$regexp  =  eregi("a+c",  "abbc");  //--  这样是不对的,  +代表一个或更多"前面的字元",  而不是代表任何一个字元 
$regexp  =  eregi("a+c",  "abc");  //--  这样也是不对的,  注释如上 

$regexp  =  eregi("[^abc]",  "a");  //--  这是比较不同的一点,  那就是如果^出现在[]里面,  代表"除"了里面的字,  全部都是对的. 
$regexp  =  eregi("[^abc]",  "d");  //--  这是对的,  因d并不在abc里面 
$regexp  =  eregi("[^[:alnum:]]",  "9");  //--这是对的,  因~并不包括在a至z,  0至9里面 
当然,  [[:digit:]]用法也是相同: 
$regexp  =  eregi("[^[:digit:]]",  "a");  //--  这是对的,  因a并不包括在0至9里面 

最后,  举个有用的例子, 
比如说,  我要每个人的密码都不准拥有0至9,  可以这样试验: 
$regexp  =  eregi("^[^0-9]+$",  "aaa9");  //--把aaa9当做密码 
if  ($regexp  ==  "")  { 
    echo  "密码拥有号码,  请改过"; 
}  else  { 
    echo  "密码没有号码,  通过"; 

测验显示,  密码拥有号码,  请改过. 
相信每个人都看到,  [^0-9]前后各有^及$,  这是为了确保前后不能拥有号码,  而+则确保中间没有任何的号码, 
[]里面的^,  则是"除了0至9之外,  其他一律通过" 
所以只要将9拿去,  就会显示"密码没有号码,  通过"了  !

来源:upschool.cn
作者:
关键字:正则表达式,基本用法
发表日期:2006-7-26

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:用PHP编程开发“虚拟域名”系统   下一篇:用PHP创建并处理图象


2009-1-8 4:18:50
本文的相类似文章
  • 理解Oracle10g的SQL正则表达式支持
  • PL/SQL DEVELOPER 基本用法详解
  • Oracle 10gR2中用正则表达式搜索文本
  • 常用的匹配正则表达式和实例
  • 正则表达式提取数字
  • ASP.NET 中的正则表达式
  • 在Asp中用“正则表达式对象”来校验数据合法性
  • 匹配Unicode字符的正则表达式
  • 用正则表达式过滤脚本的研究(ASP.net)
  • 支持正则表达式的UrlMapping(ASP.NET2.0)
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com