ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:81.13KB ,
资源ID:7731396      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7731396.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PHP 正则表达式自编.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PHP 正则表达式自编.docx

1、PHP 正则表达式自编PHP中的正则表达式正则表达式就是用来匹配、替换、想要的字符,在PHP中采用了两种风格的“正则表达式” POSIX和Perl两种。POSIX正则表达式是UnLx,linux中所采用正则表达式。Perl是对POSIX进行了扩展,Perl要优于POSIXPOSIX正则表达式: POSIX正则表达式中支持3种方法:中括号、量词、预定义字符1、 中括号作用:中括号的作用是选取一个字符范围。其中以 “”指定连续字符。“,”逗号用来指定间断字符。如: 0-9 任何09的十进制数字 a-z 任何az的字母 A-Za-z 任何从大写A至小写z字符。2、量词: 指定匹配的“字符”出现的“位

2、置、数量”等。$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 n 或 r。要匹配 $ 字符本身,请使用 $。( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。 标记一个中括号表达式的开始。要匹配 ,请使用 。 标记限定符表达式的开始。要匹配 ,请使用 。* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。+ 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。. 匹配除换行符 n之外的任何单字符。要匹配 .,请使用 。? 匹配前面的子表达式零次或一次,或指明一个

3、非贪婪限定符。要匹配 ? 字符,请使用 ?。 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, n 匹配字符 n。n 匹配换行符。序列 匹配 ,而 ( 则匹配 (。 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 字符本身,请使用 。| 指明两项之间的一个选择。要匹配 |,请使用 |。预定义字符 :alpha: 任何大小写字母,相当于Perl中的A-Za-z :digit: 任何数字,相当于Perl中的0-9 :alnum: 任何大小写字母和数字,相当于Perl中的A-Za-z0-9 :space: 任何白字符,空格、换行、制

4、表符、换页、回车 :upper: 任何大写字母,相当于Perl中的A-Z :lower: 任何小写字母,相当于Perl中的a-z :punct: 任何标点符号 :graph: 从ASCII33-126范围内的可打印字符。 SOPIX正则独有的:cntrl: 控制字符,如制表符,退格符或反斜线。SOPIX正则独有的 :xdigit: 任何16进制的数字,相当于Perl中的0-9a-fA-FPHP中支持的POSIX风格函数有7个: boolean ereg(string val,string val2,array regs)ereg使用POSIX正则 val中的值,以区分大小定的方式搜索val2中

5、的值,再按正则表达式中圆括号()中的字表达式分别进行填充regs数组,如果有一个匹配就返回True。如:结果: 查到了 查到的内容是:eregi() 以不区分大小定的方式搜索,其它与ereg()相同如:结果显示: 没有查到string ereg_replace(string pattern,string replacement,string string) 以区分大小写的方式替换文本,pattern为要查的“正则表达式”,replacement为要怎样替换的“正则表达式”,string 为“被查找文本”,最后再返回一个“替换结果”string值。注意:匹配的值也和ereg()方法一样分段,但这

6、里使用01 ,2 来分别引用,而不是数组索引。如下: 显示结果: baiduurl地址为:baidueregi_replace() 其使用和ereg_replace()方法一样,只是采用“不区分大小写的方式替换文本”split(string pattern,string string,int lmit) split()是“以区分大小写的形式”通过“正则表达式(pattern)”查找字符文本(string),充当被查找文本中的分割符,将文本进行分割。可以指定分割个数(lmit),进行分割。如:显示结果:Array ( 0 = www 1 = )spliti() spliti()是“以不区分大小写

7、的形式”通过“正则表达式(pattern)”查找字符文本(string),充当被查找文本中的分割符,将文本进行分割。可以指定分割个数(lmit),进行分割。sql_regcase() 字符文本中只要出现字母,函数将该字母转换成“正则表达式的大小写界限”。 如果PHP应用要与其它应用协作,而这些应用只支持区分大小写的正则表达式,可以使用这个函数作为工作区。如:显示结果:WwWwWw.BbAaIiDdUu.CcOoMmPerl正则表达式 Perl正则表达式,继承了POSIX正则表达式的上述语法,即:中括号、量词、预定义字符,同时也添加了它独有的操作语法:修饰符、元字符。Perl采用 /正则表达式/

8、 的形式进行书写的。修饰符:通常,你可能希望调整正则表达式解释:例如,可能希望告诉正则表达式完成不区分大小写的搜索,或忽略语法中注释。这些调整称为“修饰符(modifier)”,修饰符对编写简洁短小的表达式大有帮助。表9-1列出了一此需要特别注意的修饰符:i完成不区分大小写的搜索g查找所有出现(all occurrences 完成全局搜索)m将一个字符串为多行(m就表示(mulitiple)。默认情况下,和$字符匹配字符串的最开始和最末尾。使用m修饰符将使和$匹配字符串中每行的开始。s将一个字符串视为一行,忽略其中的所有换行符;它与m修饰符正好相反x忽略正则表达式中的空白和注释u第一次匹配后停

9、止。许多量词很“贪婪”,将尽可通地完成匹配,而不是在第一次匹配后停止。利用这个修饰,可以让它们“不再贪婪”如:/wmd/i :可以匹配WMD、wMD、WMd、wmd 以及字符串wnd的任何其它大小写形式。/taxation/gi:由于不区分大小写,所以会找到单词“taxation”所有出现。可以使用这个全局修饰符出现的总次数,或者结合替换特性用某个字符串替代模式的所有出现。元字符 利用Perl正则表达式还可以做另一件有用的事情,这就是使用各种元字符来搜索匹配。元字符(metacharacter)就是一个前面有反斜线的字母字符,表示某种特殊含义。以下是一组有用的元字符。b 匹配一个单词边界,也就

10、是指单词和空格间的位置。例如, erb 可以匹配never 中的 er,但不能匹配 verb 中的 er。B 匹配非单词边界。erB 能匹配 verb 中的 er,但不能匹配 never 中的 er。cx 匹配由 x 指明的控制字符。例如, cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 c 字符。d 匹配一个数字字符。等价于 0-9。D 匹配一个非数字字符。等价于 0-9。f 匹配一个换页符。等价于 x0c 和 cL。n 匹配一个换行符。等价于 x0a 和 cJ。r 匹配一个回车符。等价于 x0d 和 cM。s 匹配任何空

11、白字符,包括空格、制表符、换页符等等。等价于 fnrtv。S 匹配任何非空白字符。等价于 fnrtv。t 匹配一个制表符。等价于 x09 和 cI。v 匹配一个垂直制表符。等价于 x0b 和 cK。w 匹配包括下划线的任何单词字符。等价于A-Za-z0-9_。W 匹配任何非单词字符。等价于 A-Za-z0-9_。xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,x41 匹配 A。x041 则等价于 x04 & 1。正则表达式中可以使用 ASCII 编码。.num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,(.)1 匹配两个连续的

12、相同字符。n 标识一个八进制转义值或一个向后引用。如果 n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。nm 标识一个八进制转义值或一个向后引用。如果 nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 nm 将匹配八进制转义值 nm。nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。un 匹配

13、n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, u00A9 匹配版权符号 (?)。PHP中的Perl函数 PHP中的perl拥有7个函数,和POSIX一样,但功能有差异。包括:preg_grep() 搜索数组中的所有元素,反回由与某个模式匹配的所有元素组成的数组。其形式为:array preg_grep(string pattern,array input,flags)preg_grep()函数搜索数组中的所有元素,返回由与某个模式匹配的所有元素组成的数组。Pattern是所编写的“正则表达式”,array是要搜索的“数组”,flag是一个可选参数,他接受一个PRE

14、G_REGP_IVNERT。传递的标志将得到与该模式不匹配的数组元素。实例:显示结果:Array ( 2 = tow 3 = three )注意:显示结果中的索引是2和3这和数组$arrNumber中的位置是对应的,它的数组大小也只有2boolean preg_match() (string pattern,string string,array matches) preg_match()函数在字符串中搜索模式,如果存在则返回TRUE,否则返回FALS。Pattern为“正则表达式”,string 是被搜索的文本,matches为匹配的存储的数组。如:结果:Array ( 0 = ever c

15、reated! 1 = eve 2 = created! ) -int preg_match_all(string pattern,string string,array pattern_array,int order)preg_match_all()函数在字符串中匹配模式的所有出现,以便通过可选的输入参数order所指定的顺序,将每次出现放在某个数组中。如:结果:8:09, 9:40 7:30string preg_quote(string str ,string delimiter)函数preg_quote()在每个对于正则表达式语法而言有特殊的字符前插入一个反斜线。这些特殊字符包括:$*

16、() + | : 可以通过可选参数delimiter定指定用于正则表达式的定界符,使用它也要用反斜线转义。如:显示结果:现在时间8:09,到了明天9:40有会议要7:30开mixed preg_replace(mixed pattern,mixed replacement,string str|int limit)preg_replace()函数的作用是“替换模式的所有出现”,并返回修改后的结果。Pattern为要按照要求的表达式,replacement为要按照要求替换的表达式, str为查找的文本,limit是一个可选的参数表示要进行多少次匹配,不设置和设置为-1表示替换所有出现的情况 。注

17、意:pattern和replacement可为一个数组类型。如:结果:现在时间,到了明天有会议要开现在时间9:00,到了明天6:20有会议要12:30开mixed preg_replace_callback(mixed pattern,mixed function,string str|int limit)preg_replace_callback()函数要以通过别外函数返回值进行替换,在替换函数中可以对查找到的内容进行加工返回显示结果:现在时间8:010,到了明天10:40有会议要7:30开array preg_split(string pattern,string str,int limit,int flags)preg_split()函数“以不区分大小写的方式将字符串划分成不同元素。Pattern为分割标识,str为搜索文本,limit为分割个数,flags为分割方式。如:显示结果:Array ( 0 = 现在时间8:09 1 = 到了明天9:40 2 = 有会议要7:30开 )

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1