《PHP字符串与正则表达式.ppt》由会员分享,可在线阅读,更多相关《PHP字符串与正则表达式.ppt(28页珍藏版)》请在三一办公上搜索。
1、字符串与正则表达式,PHP基础,字符串函数,strlen,定义:int strlen(string string)返回的是字节数。例子 1.A strlen()example,substr,定义string substr(string string,int start,int length)strart为起始位置,从0开始,length中长度。,strstr,定义:string strstr(string 原串,string 标识)截字原字符串中,从包含标识处到结尾的字符。If 标识 is not found,returns FALSE.例子,strpos,定义:int strpos(stri
2、ng haystack,string needle,int offset)返回needls在haystack的出现位置。从0开始,0表示开始位置。未找到返回false,省略offset则从头查起,否则从offset指定的数值算起。,explode,定义:array explode(string separator,string string,int limit)按标识拆分字符串。Separator为拆分标识,string不原煤字符串。拆分之后,得到的是数组类型。,implode,定义:string implode(string glue,array pieces)与explode正好相反,将数
3、组变成字符串。glue为连接标识,pieces为数组。,trim,Descriptionstring trim(string str,string charlist)str为在处理的字符串;charlist为要去掉的内容。默认为去空格及r t n。(ASCII 32(0 x20),an ordinary space.t(ASCII 9(0 x09),a tab.n(ASCII 10(0 x0A),a new line(line feed).“r”,str_pad,str_pad 补充字符串;?str_repeat 重复字符串 This will output-=-=-=-=-=-=-=-=-=
4、-=.,strtoupper,定义string strtoupper(string string)转为大写。例子 strtolower(string string)转为小写,用法与上同。,str_replace,定义:mixed str_replace(mixed old,mixed new,mixed string,int/是何物?,strtr,定义:string strtr(string str,array replace_pairs)字符串翻译式替换 hi,hi=hello);echo strtr(hi all,I said hello,$trans);?结果:hello all,I s
5、aid hi,strrev,定义:string strrev(string string)字符串反转例子,正则表达式,正则表达式介绍PHP中的正则表达式正则表达式语法,什么是正则表达式,正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。应用范围:表单验证、数据验证、字符替换等。如判断某个邮件地址是否正确。?如何写程序?PHP中有两种形式的正则表达式:一种是“POSIX扩展”正则表达式,另一种是“Perl兼容”正则表达式。他们的语法稍微不同,但他们实现的功能都是相同的。本节将
6、介绍如何使用Perl兼容正则表达式,因为这种形式更加强大,而且是二进制安全的。所有的语言,如php 、javascript都支持正则表达式。,正则和php,正则表达式的构成:普通字符(例如字符a到z)如:a-z a|b特殊字符(称为元字符)如:w*等等。Php中正则表达式的写法:“/expression/”,php中两个函数,字符匹配:ereg()preg_match();1、如果匹配,返回1,也就是true,否则返回0,也就是false.2、preg_match()是ereg()的替代方案,preg_match()速度更快。$aa=preg_match(/hi/,fdfhi,china);e
7、cho$aa;/1字符替换:ereg_replace()preg _replace()echo preg_replace(“/hi/i”,“zuoyefeng”,“HI,china php”);/zuoyefeng,czuoyefengna php i表示不区别大小写,常见元字符列表,常用元字符符号,(1)“”插入符/first/表示检测字符串是否以 first 开头(2)“$”美元符/end$/表示检测字符串是否以 end 结尾(3)”.”点号。点号是用来匹配除了换行符之外的任意字符/e.d/表示检测字符串是否匹配字符e加一个任意字符和字符d(4)”-”短横线。短横线被称为范围界定字符/0-
8、9/表示字符串是否匹配任何数字 0-9 非数字,(5)”|”管道元字符/(a|b)/表示字符串含有字符a或字符b(6)n,m 这里的n和m都是正整数。匹配至少n个最多m个前面的字符。例如:/a 1,3/不匹配“andy”中的任何字符,但匹配“candy,”中的a,“caandy,”中的前面两个。,常用元字符字符,w 意义:匹配所有的数字和字母以及下划线,等价于A-Za-z0-9_。例如:/w/匹配apple,中的a,.28,中的5和3D.中的3。W 意义:匹配除数字、字母外及下划线外的其它字符,等价于A-Za-z0-9_。例如:/W/或者/$A-Za-z0-9_/匹配“50%.”中的%。d 匹
9、配一个数字字符。等价于 0-9。,D 匹配一个非数字字符。等价于 0-9。$pattern=“/aa/i”;i表示不区别大小写n 意义:匹配一个换行符 r 意义:匹配一个回车符,手机号码的验证,?php$tel$ab=preg_match(/130-99,9$/,$tel);/*说明:表示这符开始(元字符)$表示字符结尾(元字符)13为普通字符0-9表示一个0-9的数字9 表示匹配9次,表意:后面的号码,如果是13开头的,中间有9个数字,并结尾,则符合条件*/if($ab)echo 找到了;else echo 没找到了!;?,邮件地址的验证,function checkmail()$str=$_POSTmail;$check=preg_match(“/a-zA-Z0-9_-+a-zA-Z0-9_-+.a-zA-Z0-9_-2,4$/,$str);if($check)echo 邮件地址正确;else echo 邮件不正确!;,以上验证保证了邮件地址只能是:类似的的格式,作业:,1、验证生日2、将手机号的第5位到第8位替换成*号3、验证人民币格式将上述验证,均写在MyCheck类中,定义为三个方法,以备后用。,