欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    字符串与正则表达式.ppt

    • 资源ID:5957334       资源大小:312.61KB        全文页数:51页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    字符串与正则表达式.ppt

    字符串与正则表达式,本章内容,字符串处理正则表达式正则表达式的Web验证应用,字符串处理,1.获取字符串长度获取字符串长度是字符串处理技术中非常重要的一项,通过其可以获取到指定字符串的长度,从而实现其他更多的功能。该技术通过strlen()函数来实现。语法:int strlen(string str)参数str为指定的字符串。例子:获取字符串长度,字符串处理,2.字符串的连接和分割字符串的连接与分割是非常重要的两个内容,通过其可以将数组按照指定的规则转换成字符串,也可以将字符串按照指定的规则进行分割,返回一个数组。其应用范围很广,这两项技术的实现主要通过implode()和explode()函数来完成。1.implode()函数implode()函数将一个数组按照指定的规则转换成一个字符串。使用本函数可以将表单中提交的数组数据转换成字符串形式进行存储。如果要将数组中的内容以字符串的形式进行输出,则使用该函数是最好的选择。语法:string implode(string glue,array pieces),字符串处理,本函数将数组pieces中的元素按照字符串glue进行连接,返回一个新字符串。注意:join()函数是implode()函数的别名例子:字符串的连接2.explode()函数explode()函数按照指定的规则对一个字符串进行分割,返回值为数组。使用该函数可以将指定字符串中的内容按照某个规则进行分类存储,进而实现更多的功能。语法:array explode(string separator,string str,int limit),字符串处理,参数separator:必要参数,指定的分割符。如果separator为空字符串(“”),explode()将返回false,如果separator所包含的值在str中找不到,那么explode()将返回包含str单个元素的数组。参数str:必要参数指定将要被进行分割的字符串。参数limit:可选参数,如果设置了limit参数,则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分;如果limit参数是负数,则返回除了最后的limit个元素外的所有元素例子:字符串的分割例子:explode函数的应用(生成复选框),字符串处理,3.字符串大小写转换在PHP中字符串大小写的转换也是一项不可忽视的技术,通过该技术可以实现字符串大小写的统一,可以规范字符串的写作风格。实现该技术主要通过以下几个函数:Strtoupper()函数将指定的字符串转换成大写,返回值为这个字符串的大写形式。语法:string strtoupper(string str)参数str为指定的字符串。例子:将指定的字符串转换成大写,字符串处理,ucfirst()函数将指定字符串的第一个字符转换成大写,并返回首字符大写的字符串。语法:string ucfirst(string str)参数str为指定的字符串例子:将指定字符串中的首字符转换成大写,并且输出该字符串strtolower()函数将指定的字符都转换成小写。例子:将指定字符串中的首字符转换成小写,并且输出该字符串,字符串处理,ucwords()函数将指定字符串中每个单词的首字母都转换成大写。例子:将指定字符串中的每个单词的首字母都转换成大写,并且输出该字符串,字符串处理,4.HTML实体的处理html中的特殊字符是通过实体代码转换的。例如:“”的实体代码是“”等。函数htmlentities()可以转换所有的非ASCII码字符成对应的实体代码。例子:htmlentities()函数的使用范例函数htmlentities()原型如下:string htmlentities(string$string,int$quote_style,string$charset)参数$charset用于指定所处理字符串$string的字符集,默认的字符集是“ISO8859-1”。PHP也支持更多的HTML字符集,如:UTF-8、gb2312、BIG5等,字符串处理,参数$quote_style决定引号的转换方式。默认值ENT_COMPAT将只转换双引号,而保留单引号;ENT_QUOTES将同时转换这两种引号;ENT_NOQUOTES将不对引号进行转换。,字符串处理,PHP中还提供了htmlspecialchars()函数,用以转换一些特殊字符。以下是htmlspecialchars()函数能够转换的字符。“”,字符串处理,htmlspecialchars()函数具有和htmlentities()函数相同的参数列表。其对引号的转换规则也是相同的,可以使用相同的字符集。例子:htmlspecialchars()函数的使用,字符串处理,5.去除字符串中的空格在php中,针对字符串存在的空格,可以通过去除字符串中空格的技术将空格去除。但是,即使应用了去除空格的技术,从表面很难看出区别,只有在通过获取字符串的长度进行比较后才能看出明显的区别。trim()函数可以删除字符串前后的空白字符,还可以对字符串中的指定字符进行删除的操作。可以说该函数有两种功能:去除空格和删除字符串中指定的字符。语法:string trim(string str,string character_mask)参数str是必要参数,指定要操作的字符串;参数character_mask为可选参数,为要从指定的字符串中删除的特定字符(即所谓的空白字符)。0空值、t制表符、n新行、x0B垂直制表符、r回车、”空格例子:去除字符串中的空格,字符串处理,还有两个函数:rtrim()函数去除字符串右边的空格,ltrim()函数去除字符串左边的空格。,字符串处理,6.确定字符串中字符和单词的数量在PHP中,有一种技术可以获取字符串中字符和单词数量,通过该技术可以查看到指定字符或者单词在字符串中出现的次数,而且还可以应用到论坛、博客或者聊天室的信息发布模块中,判断提交的信息中是否含有非法关键字。实现该技术主要通过substr_conunt()函数。该函数获取指定字符在字符串中出现的次数。从表面上看该函数的功能就是获取指定字符在字符串中出现的次数,输出的只是一个数字,但是在实际的运用中,只要对输出的数字加以判断后,就能够实现不同的功能。语法:int substr_count(string haystack,string needle)参数haystack是指定的字符串,参数needle为指定的字符。例子:判断发布的信息是否含有指定的关键字。如果该函数的返回值大于0,则信息中有指定的关键字,弹出提示对话框;否则信息中没有指定的关键字,输出“数据添加成功!”,字符串处理,7.定位字符顾名思义,就是获取指定字符在字符串中的位置,也就是说是获取字符串A在字符串B中出现的位置。在PHP中,针对字符串定位技术也提供多个函数。strpos函数获取指定字符串(A)在字符串(B)中首次出现的位置。返回值为字符串所在的位置,如果失败则返回false。语法:int strpos(string haystack,string needle,int offset)参数haystack:指定从哪个字符串中开始检索字符串参数needle:指定要检索的字符串参数offset:指定从字符串的哪一位开始检索例子:获取指定的字符在字符串中首次出现的位置,字符串处理,strrpos()函数获取指定字符串(A)在另一个字符串(B)中最后一次出现的位置,返回结果为指定字符出现的位置,失败则返回false。同样该函数返回的是一个数字,不是子字符串。和strpos相同都是返回从左向右数字符的位置,区别是strpos从左向右找该字符第一次出现的位置,而strrpos是从右向左找该字符第一次出现的位置。语法:int strrpos(string haystack,string needle)参数haystack是指定的字符串B参数needle是指定的字符串A例子:获取I在变量$str中最后出现的位置如果不区分大小写可以使用函数stripos()和strripos(),字符串处理,8.访问字符串中的字符使用上面的函数,就可以对字符串做很多基本的操作了,如访问字符串中的字符等。此外,在PHP中还可以直接在字符串变量后面使用“”操作符,通过字符的偏移量对其进行直接操作。例子:取得字符例子:反序排列字符串,字符串处理,9.加入和去除反斜杠在用PHP编程的过程中,经常会遇到这样的问题,将数据插入到数据库中时可能引起一些问题。出现错误或者乱码等,因为数据库将传入的数据中的字符解释成控制符。针对这样的问题,就需要使用一种标记或者是转义这些特殊的字符。因此,在PHP语言中提供专门处理这些问题的技术,加入和去除字符串中的反斜杠技术。addcslashes()函数实现对指定字符串中的字符进行转义,即在指定的字符前加上反斜杠“”。通过该函数可以将要添加到数据库中的字符串进行转义,从而避免出现乱码等问题。语法:string addcslashes(string str,string charlist),字符串处理,参数str为将要被操作的字符串;参数charlist指定在字符串中的哪些字符前加上反斜杠“”。例子:利用addcslashes()函数对指定字符串中的字符进行转义,对指定范围中的字符进行转义,对其他非字母数字进行转义。,字符串处理,10.填充、删除和截取字符串在PHP中,有一项非常重要的技术,就是截取指定字符串中指定长度的字符,可以通过函数substr()来实现。至于填充和删除字符串的技术,相对于截取字符串而言应用的就少一些。但是也是需要掌握的技术,其中填充技术通过str_pad()函数来实现,而删除技术已经在前面介绍过了,可以使用去除字符串中的空格技术实现。substr()函数从指定的字符串中按照指定的位置截取一定长度的字符。通过该函数可以获取某个固定格式字符串的一部分,如果使用一个正数作为子字符串起点来调用这个函数,将得到从起点到字符串结束的这个字符串;如果使用一个负数作为子字符串起点来调用,将得到一个原字符串尾部的一个子字符串,字符个数等于给定负数的绝对值。,字符串处理,语法:string substr(string str,int start,int length)参数str:指定字符串对象参数start:指定开始截取字符串的位置。如果参数start为负数,则从字符串的末尾开始截取参数length:可选参数,指定截取字符的个数,如果length为负数,则表示取到倒数第length个字符注意:本函数中参数start的指定位置是从0开始计算的,即字符串中的第一个字符表示为0。例子:字符串的截取,字符串处理,str_pad()函数将指定字符串填充成指定长度的字符串。通过该函数可以将指定的字符串以某个指定的字符填充成指定的长度,并且可以控制填充的位置,从字符串前、后或者两端同时开始。语法:string str_pad(string input,int pad_length,string pad_string,int pad_type)参数input:指定被填充的字符串参数pad_length:字符串被填充的长度。如果pad_length的值是负数或是小于输入字符串的长度时,则不会填充。参数pad_string:可选参数,如果没有该参数,则应用空白将参数input填充;否则,应用pad_string填充到指定的长度。参数pad_type:参数pad_type可以是STR_PAD_RIGHT(表示从右侧开始填充)、STR_PAD_LEFT(表示从左侧开始填充)、STR_PAD_BOTH(表示从两端开始填充),默认为STR_PAD_RIGHT例子:str_pad()函数应用实例,字符串处理,11.字符串的比较在PHP中,对字符串之间进行比较的应用也是非常广泛的,比较的方法也很多,不但可以按照字节进行比较,而且可以按照自然排序法进行比较,还有字符串的模糊比较。其中最常用的就是按字节进行字符串的比较,使用该技术可以对用户登录时的用户名和密码进行判断,检查其输入的是否正确。按字节进行字符串的比较strcmp()函数语法:int strcmp(string str1,string str2)参数str1和参数str2指定要比较的两个字符串。如果相等返回0;如果参数str1大于参数str2返回大于0;反之返回小于0。注意:本函数区分大小写。例子:应用strcmp()函数比较用户登录系统中输入的用户名和密码是否正确。,字符串处理,按自然排序法进行字符串的比较在PHP中,通过strnatcmp()函数来实现自然排序的。自然排序法比较的是字符串中的数字部分,将字符串中的数字按照大小进行排序。语法:int strnatcmp(string str1,string str2)如果字符串相等则返回0,如果参数str1大于参数str2则返回值大于0,反之返回值小于0。注意:本函数是区分大小写的。注意:在自然运算中,2比10小。在计算机序列中,10比2小,因为“10”中的第一个数字是“1”,小于“2”。用前面的strcmp()函数比较“10”和“2”的时候,是2大。说明:针对自然运算法进行比较,还有一个与strnatcmp()函数相同,但是不区分大小写的strnatcasecmp()函数,他的作用和strnatcmp()函数相同。例子:应用strnatcmp()函数进行字符串的比较,字符串处理,12.字符串的查找和替换在PHP中,提供很多应用于字符串的查找和替换的函数,PHP也可以像word那样实现对字符串的查找和替换的功能。这里针对字符串的查找和替换的技术介绍几种实现的方法。、字符串的查找strstr()函数:获取指定字符串(A)在另一个字符串(B)中首次出现的位置到后者末尾的子字符串。本函数区分字母大小写。语法:string strstr(string haystack,string needle)参数haystack为指定将要被搜索的字符串;参数needle为指定将要搜索的内容,如果该参数是一个数值,那么将搜索与这个数值的ASCII值相匹配的字符。如果执行成功,则返回剩余字符串(存在相匹配的字符);如果没有找到相匹配的字符,则返回false。例子:利用strstr()函数在网站中搜索有关“水”的商品信息,字符串处理,strrchr()函数:获取指定字符串(A)在另一个字符串(B)中最后一次出现的位置。本函数区分字母大小写。语法:string strrchr(string haystack,string needle)参数haystack:为指定被搜索的对象字符串(B)参数needle:为指定搜索的内容字符串(A)。返回从字符串(B)中的这个位置起,一直到字符串(B)结束的所有字符;如果失败则返回false。例子:应用strrchr()函数获取指定字符在字符串中最后出现的位置到字符串最后的所有字符字符串的替换str_ireplace()函数:将指定的字符串替换为另外一个指定的字符串。本函数不区分大小写。该函数最适合应用到搜索引擎中的关键字描红中。语法:mixed str_ireplace(mixed search,mixed replace,mixed subject,int&count)将所有在参数subject中出现的参数search以参数replace取代,参数&count表示取代字符串执行的次数。,字符串处理,参数search:必要参数,指定需要查找的字符串参数replace:必要参数,指定替换的值参数subject:必要参数,指定查找的范围参数count:可选参数,获取执行替换的数量例子:应用str_ireplace()函数对查询的关键字进行描红。str_replace()函数使用新的子字符串替换原始字符串中被指定要替换的字符串。该函数的使用方法和str_ireplace()函数是相同的,唯一的区别就是str_replace()函数区分字母大小写。语法:1.string str_replace(string$search,string$replace,string$string)2.string str_replace(array$search,string$replace,string$string)3.string str_replace(array$search,array$replace,string$string),字符串处理,在第一种用法中,$search和$replace都是字符串,函数将使用$replace替换所有$search。例子:str_replace()函数用法一在第二种用法中,$search是包含多个目标字符串的数组。函数将使用同一个$replace字符串替换数组$search中的每一个元素。例子:str_replace()函数用法二最后一种用法中,$search和$replace都是包含多个元素的数组。通常,其中的元素彼此对应。函数将用$replace中的元素替换$search中的元素。如果目标对象的元素较多,那么其中多出来的元素将被空替换(即从处理字符串中删除)。例子:str_replace()函数用法三,字符串处理,substr_replace()函数:对指定字符串中的部分字符串进行替换。该函数是substr函数的升级版,它不但获取到指定字符串中的指定字符,而且对指定的字符还进行了替换。语法:string substr_replace(string str,string repl,int start,int length)参数str:指定要操作的原始字符串参数repl:指定替换后的字符串参数start:指定替换字符串开始的位置。正数,起始位置从字符串开头开始;负数,起始位置从字符串的结尾开始;0,起始位置从字符串中的第一个字符开始。参数length:可选参数,指定返回的字符串长度。默认值是整个字符串。正数,起始位置从字符串开头开始;负数,起始位置从字符串的结尾开始;0表示“插入”而不是“替换”。注意:如果参数start设置为负数,而参数length数值小于或等于start数值,那么length的值自动为0。例子:利用substr_replace()函数对指定字符串进行替换,字符串处理,13.字符串的反转strrev()函数可以对字符串中的字符反序排列,这种反序是按照字节进行的(一个字节代表一个字符)。例子:字符串的反转14.字符翻译strtr()函数也是字符串替换函数的一种,也称为字符串翻译函数。其有两种调用形式。string strtr(string$str,string$from,string$to)string strtr(string$str,array$replace_pairs)第一种是基本的调用形式。函数将返回一个字符串$str的拷贝,其中,在$from中的每一个字符被$to中对应的字符所替换。需要注意的是,strtr()函数的功能不是将$from字符串替换为$to,而是将它们中的对应字符进行替换。例子:strtr()函数的第一种形式,字符串处理,第二种是扩展的调用形式。函数将返回一个字符串$str的拷贝。其中,与$replace_pairs数组中键名相等的子串,被该键值所对应的元素值替换。例子:strtr()函数的第二种形式15.引号的处理在某些输出中,输出的表单数据中多出一些斜线”,会造成页面的混乱。这是由于PHP配置文件php.ini中的选项magic_quotes_gpc在起作用。当该选项打开时(默认是打开的,可以使用函数get_magic_gpc()进行查询),被提交的表单数据中的”、”“”、”“等字符前将被加上一个斜线”。除非禁用magic_quotes_gpc选项,否则应考虑使用函数stripslashes()删除反斜线。stripslashes()函数的功能是去掉斜线”。如果是连续两个反斜线则只去掉一个;如果是一个就直接去掉。与之对应的是另一个函数addslashes(),正如函数名所暗示的,它将在”、”“”、”“,前增加必要的反斜线。例子:stripslashes()函数和addslashes()函数的使用例子:综合应用,字符串处理,16.URL字符串的解析parse_str()函数可以解析浏览器用GET方法返回的QUERY_STING查询字符串。该函数有两种使用方式:其一:是将QUERY_STING查询字符串中的变量直接转化为同名的PHP变量。其二:是将解析后的变量放入指定的数组中。无论使用何种方式,解析后的变量的作用域与parse_str()函数相同。例子:解析查询字符串,字符串处理,PHP中也提供了全面分析url的函数parse_url()。此函数将返回一个数组,结果中包含以下部分或者全部内容。scheme:协议,如”http“或”https“host:域名port:端口user:认证用户名pass:认证密码path:访问路径query:查询字符串,url中?后面的内容fragment:锚点,页面的定位标记,url中#后面的内容尽管parse_url()将返回这些信息,但并不意味着给定的url字符串是合法的。任何一个类似这样url的字符串都会被解析。例子:解析url字符串,正则表达式,正则表达式是一种描述字符串结构模式的形式化表达方法,是一个强大、便捷、高效的文本处理工具,可以验证用户输入的数据和检索大量的文本。在PHP中,正则表达式应用最好的体现是对表单提交的数据进行验证,判断其数据是否合理、合法。例如:对E-mail地址的验证、对电话号码的验证、对身份证号码的验证等。1.正则表达式的概述正则表达式是一种进行文本匹配的工具。正则表达式有一套完整的语法体系,提供一种灵活、直观的字符串处理方法。可以让用户使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及Web页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,从而执行相应的程序。其中匹配的依据是具有某种共同特征的字符串表达式。例如:在电子邮件的地址中,其共同的特征是都包含字符“”;在电话号码中,其共同的特征是电话号码的位数都相同;在标准的URL地址中,其共同的特征是必须以”http:/”和”https:/“开头,诸如此类都是进行模式匹配的依据。在PHP中,正则表达式的创建方法很简单,只需将模式的内容包含在两个反斜线”/”之间,例如:“/php/”。即将要匹配的内容放置在定界符之间,其中定界符的使用不局限于“/”,也可以使用数字、字母和斜线”以外的任何字符。例如:“#”、“/”、”!”等都可以作为定界符使用。,正则表达式,2.正则表达式的语法正则表达式描述了一种字符串匹配的模式,可以用来检验一个字符串是否含有某种子串,将匹配的子串做替换或者从某个字符串中取出符合某个条件子串等。正则表达式是由普通字符(例如:A-Z等)和特殊字符(例如*、/等元字符)组成的文字模式。正则表达式作为一个模板,可以将某个字符模式与所搜索的字符串进行匹配。普通字符普通字符是组成正则表达式的基本单位。由所有未显示指定为元字符的打印和非打印字符组成。包括:所有的英文字母、数字、标点符号以及其他一些符号。普通字符包括的内容如下:单个字符、数字,如a-z,A-Z,0-9。模式单元,如(ASD)。即由多个普通字符组成的原子。普通字符表,如ABC。重新使用的模式单元。普通转义字符。转义元字符。,正则表达式,正则表达式的普通转义字符位于括号之内的任意字符不在括号之中的任意字符.除换行符合其他Unicode行终止符之外的任意字符。d匹配一个数字字符,等价于0-9D匹配一个非数字字符,等价于0-9w任何单词字符,包括字母和下划线。等价于A-Za-z0-9_W任何非单词字符,等价于A-Za-z0-9_s任何空白字符,包括空格、制表符、分页符等。等价于fnrtvS任何非空白字符,等价于fnrtvf分页符。n换行符。r回车符。,正则表达式,t制表符。v垂直制表符。oNN匹配八进制数字xNN匹配十六进制数字cC匹配一个控制字符特殊字符所谓特殊字符,就是一些有特殊含义的字符,如:“*.php”中的*,简单的说就是表示任何字符串的意思。如果要查找文件名中有“*”的文件,则需要对*进行转义,即在前面加一个反斜杠”。下面对这些特殊转义字符进行分类详细的讲解。原子表:原子表”存放一组原子,匹配其中的一个原子。如果想匹配一个”a”或者”s”使用/as/,例如:/masn/匹配”man”或者”msn”;原子表”实现匹配除原子表内以外的任意字符。例如:/pa/匹配”php”中的”ph”,但是不能匹配“apache”中的”pa”,因为”a“在匹配中被排除。,正则表达式,例子:下面应用正则表达式中的原子表匹配一个由字母”m”与一个数字组成的字符串。例子:应用正则表达式匹配一个简单的十六进制的数字。例子:应用正则表达式匹配除英文字母、数字和下划线以外任何一个字符重复匹配在正则表达式的特殊转义字符中,有一些用于重复匹配其前原子的特殊字符:“*”、“+”、“?”。这些特殊字符实现的功能是相同的,唯一区别是重复匹配的次数不同。“*”表示重复匹配其前原子0次、1次货多次。“+”表示重复匹配其前原子1次或多次。“?”表示重复匹配其前原子0次或者1次。上述3个重复匹配的特殊字符实现的是模糊次数的重复匹配,要精确的指定原子重复的次数,可以使用特殊字符“”指定所匹配的原子出现的次数。“m”表示重复匹配其前原子m次。“m,n”表示重复匹配其前原子m次。,正则表达式,“m,”表示重复匹配其前面的原子出现不少于m次。例子:分别用上述6个重复匹配特殊字符,对正则表达式中的前面的原子进行匹配边界限制在应用正则表达式时,有时需要对其匹配的范围进行限制,以此来获取更加准确的匹配结果。对匹配范围的边界限制有两种方法:第一是确保模式的匹配从字符串的首端开始,通过特殊字符“”或者”A“实现。第二是确保模式的匹配从字符串的末端开始,通过特殊字符”$“或者”Z”实现。通过该技术可以确定模式匹配是从字符串的首端或者末端开始,可以将该技术应用到判断表单中提交的数据是否符合要求。例子:用户注册功能(要求用户名必须以大写的M开头),正则表达式,特殊字符”.“特殊字符”.“匹配除换行符外任何一个字符,相当于n(unix系统)或者rn(windows系统)。特殊字符是非常强大的,可以匹配出换行符以外的任何一个字符。例子:应用特殊字符”.”对字符串进行匹配模式选择符“|”模式选择符其作用是正则表达式中对匹配的条件进行选择,可以匹配两个或者更多的选择之一。与if语句类似,根据不同的条件执行不同的语句。例子:模式选择符进行电话号码的判断,由于各地区电话号码位数不同,所以就需要对匹配的模式进行选择。可以将电话号码的格式分为3种:第一种:区号是3位数字,其他是8位数字第二种:区号是4位数字,其他是7位数字第三种:区号是4位数字,其他是8位数字本例中实现一个对用户提交的电话号码的格式进行判断的功能。,正则表达式,对电话号码格式进行判断的正则表达式的格式如下:/(d3-)(d8)$|(d4-)(d7)$|(d4-)(d8)$/正则表达式的功能分析如下:使用”和“$”对字符串进行边界的限制,对区号从字符串的开始进行匹配,对其他号码从字符串的末尾进行匹配;将括号”()”中的内容作为一个原子使用;使用d来匹配一个数字,区号为3或4个数字,其他数字为7或8个;使用“”来对前字符进行重复匹配;使用|对匹配的模式进行选择,分为3个模式。模式单元”()”模式单元将其中的正则表达式变为原子使用,将其中的正则表达式看作一个整体,叫做模式单元。其使用方法与数学表达式中的括号类似。通过使用模式单元,其中的表达式可以被优先处理。这种方法在表达式中出现相同的单元时是特别适用的。模式匹配的顺序,正则表达式,在使用正则表达式的过程中,同样有执行的先后顺序。通常情况下是按照由左至右的顺序进行模式匹配的,但是有些模式之间也存在先后的匹配顺序。顺序元字符说明1()模式单元2?*+重复匹配3$bBAZ边界限制4|模式选择3.PHP的正则表达式函数在PHP中有两套正则表达式的函数库。其中一套是以preg_为前缀命名的函数;另一套是以ereg_前缀命名的函数。这两套函数的功能相似,只是执行的效率略有不同。相对而言前者效率更高一些。preg_match()函数对正则表达式进行匹配。preg_match()返回匹配的次数,0次或者1次,,正则表达式,因为该函数在第一次匹配之后将停止搜索,而preg_match_all()会一直搜索到subject的结尾处。如果出错,preg_match()函数返回false。在前面的实例中已经应用过本函数。语法:int preg_match(string pattern,string subject,array subpatterns)pattern:必要参数,指定匹配的正则表达式subject:必要参数,指定要搜索的字符串subpatterns:可选参数,如果提供了该参数,则其会被搜索的结果所填充,$subpatterns0将包含与整个模式匹配的文本,$subpatterns1将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推!注意:本函数只进行一次匹配,最后返回0或者1的匹配结果数。在正则表达式的使用中,通常都是通过JavaScript脚本来调用正则表达式进行模式的匹配。例子:日期时间的匹配。,正则表达式,ereg()和eregi()eregi()是ereg()函数的忽略大小写的版本。两者与preg_match的功能类似,但函数返回的是一个布尔值,表明匹配是否成功。需要说明的是,该函数的第一个参数接受的是正则表达式字符串,即不需要使用分界符。例子:匹配指定的网址preg_grep()语法:array preg_grep(string$pattern,array$input)该函数返回一个数组,其中包括了$input数组中与给定的$pattern模式相匹配的单元。对于输入数组$input中的每个元素,preg_grep()也只进行一次匹配。例子:数组查询匹配preg_match_all()与preg_match()函数类似。如果使用了第三个参数,将把所有可能的匹配结果放入。本函数返回整个模式匹配的次数(可能为0),如果出错返回false。,正则表达式,例子:将文本中的链接地址转换成HTML4.正则表达式的替换ereg_replace()和eregi_replace()语法:string ereg_replace(string$pattern,string$replacement,string$string)ereg_replace()在$string搜索模式字符串$pattern,并将所匹配结果替换为$replacement。返回值为替换后的字符串(如果没有可以替换的匹配项则返回原始字符串)。如果$pattern包含有括号的子串,则$replacement可以包含形如“digit”的子串,这些子串将被替换为数字表示的第几个括号内的子串;“0”则包含了字符串的整个内容。最多可以用9个子串。eregi_replace()忽略大小写。例子:利用ereg_replace()对指定字符串中的字符进行替换,正则表达式,preg_replace()函数语法:mixed preg_replace(mixed$pattern,mixed$replacment,mixed$subject)该函数比ereg_replace函数更为强大。其前三个参数均可以使用数组例子:preg_replace()函数详解5.正则表达式的拆分split()和spliti()语法:array split(string$pattern,string$string,int$limit)使用正则表达式将字符串分割到数组中。本函数返回一个字符串数组,每个单元为$string经区分大小写的正则表达式$pattern作为边界分割出的子串,失败返回false。pattern:必要参数,指定分割使用的正则表达式string:必要参数,指定要操作的字符串limit:可选参数,指定返回数组单元的个数。如果设定该参数,则返回的数组最多包含limit个单元,而最后一个单元包含了string中剩余的所有部分。,正则表达式,如果字符串中有n个与pattern匹配的项目,则返回的数组将包含n+1个单元。例如:如果没有找到pattern,则会返回一个只有一个单元的数组。注意:本函数区分字母大小写。参数pattern是一个正则表达式。如果想要用的分割字符是正则表达式中的特殊字符,则要先将其转义后在使用。例子:利用split()函数对指定字符串,按照指定的规则进行拆分,并且输出拆分后的数组中的值preg_split()本函数与split函数功能一样。例子:查找文章中单词数量,正则表达式的Web验证应用,电子邮件地址的校验电子邮件地址是在表单校验时,最常用也是最重要的一种数据格式。,众所周知,一个合法的邮件地址必须包含一个字符,并将邮件地址分为两个部分。前半部分是用户名,一般由字母、数字、下划线或中划线组成。后半部分是邮件服务器的域名,通常可以被点号”.”分割多段。例子:电子邮件地址的校验电话号码和邮编校验在用户提交注册信息时,通常包含一些电话号码或邮编。这些数据主要是由数字构成的,但也包含一些其他字符。如一个中国电话号码”(086)-0411-12345678”,括号中是国家地区号,接着是分区号,随后是6到8位的电话号码。例子:电话号码校验例子:邮编校验,本节重点,掌握字符串处理的函数掌握正则表达式的基本使用掌握正则表达式在web中的使用方法,

    注意事项

    本文(字符串与正则表达式.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开