您现在的位置是:首页  > 后端  > PHP PHP

正则表达式

2020-05-17【PHP】1913人已围观

简介正则表达式一、概述    验证    网络爬虫。    概念:    具有语法格式的字符串。    函数    PCRE    1、perl语言正则语法兼容。(java c)    2、速度快,效率高。    POSIX    1、效率不高    2、安全隐患。   

正则表达式

一、概述

    验证

    网络爬虫。


    概念:

    具有语法格式的字符串。


    函数

    PCRE

    1、perl语言正则语法兼容。(java c)

    2、速度快,效率高。

    POSIX

    1、效率不高

    2、安全隐患。

    3、windows无法运行。


二、正则表达式的应用

    preg_match_all(string $pattern,string $subject,array $match)

    功能:正则匹配

    参数:

    pattern 正则表达式

    subject 要进行匹配的字符串

    match   匹配到的结果

    返回:匹配到的次数。


    语法:

    - 定界符

    - 原子

    - 元字符

    - 模式修正符


    - 定界符

      一个正则表达式必须有定界符。除了数字,字母、下划线,其他都可以作为定界符。而行业中最常用的定积分是 "/",定界符是成对出现的。

    - 原子

      原子是正则表达式的最小组成单位。一个正则表达式要想有意义,则至少有一个原子。 

      a、数字、字母、下划线,所有的打印字符都叫原子。

      b、非打印字符。

         \n 换行

      c、需要进行转义的字符。具有特殊含义的字符。例如:元字符

      d、具有特殊含义的原子

         \d 代表所有的数字

         \D 代表了所有的非数字


         \w 数字、字母、下划线

         \W 非数字、字母、下划线


         \s 代表了所有的空白

         \S 代表了所有的非空白


      e、自定义原子表

         [] 指定原子的范围,例如:a-z 代表了所有的小写英文字母

                                 A-Z 代表了所有的大写英文字母

                                 0-9  代表了所有的数字

                     

            可以同时给出多个范围,多个范围之间不需要间隔符号。

            例如:a-z0-9

            在自定义原子表中 ^代表 非

      f、. 任意原子


      元字符

      元字符是用来修饰原子的。

      * 代表被修饰的原子可以出现0次或者多次。

      + 代表被修饰的原子可以出现1次或者多次。

      ?代表被修饰的原子可以出现0次或者1次。


      {m} 代表被修饰的原子可以出现m次。

      {n,m}  代表被修饰的原子可以出现最少n最多m次。

                 n<=出现的次数<=m

      {n,}   代表被修饰的原子可以出现最少n最对不限制

                 n<=出现的次数


      |   或


      ^和\A 代表以^和\A修饰的字符的作为开始

      $和\Z 代表以$和\Z修饰的字符的作为结束


      ()

       - 子模式 

       - 改变匹配的范围

       - 反向引用



       \b和\B \b代表字符边界,\B 代表了非字符边界



正则表达式的应用

匹配、查找、分割、替换

对于普通字符串处理函数和正则表达式字符处理函数,使用的原则:

能用普通字符串处理函数处理的,就不要用正则表达式处理。


原因:

普通字符串处理函数:效率高。简单。

正则表达式处理函数:效率相对低。复杂。功能强大。


匹配、查找

strstr(string $haystack,string $needle)

功能:查找needle在haystack中出现后的字符串

参数:

haystack 元字符串

needle   查找的字符串

返回:出现后的字符串


strpos(string $haystack,string $needle)

功能:在haystack查找needle首次出现的位置

参数:

haystack 原字符串

needle   要查找的字符串

返回:位置



strrpos(string $haystack,string $needle)

功能:在haystack查找needle最后一次出现的位置

参数:

haystack 原字符串

needle   要查找的字符串

返回:位置



substr(string $str,int $start[,int length])

功能:字符串的截取

参数:

str 原字符串

start 截取的开始

length 截取的长度,默认截取到字符串尾

返回:截取后的字符串


preg_match_all(string $pattern,string $subject,array $match)

功能:正则匹配

参数:

pattern 正则

subject 要进行匹配的字符串

match   匹配的结果

返回:匹配到的次数


preg_match(string $pattern,string $subject,array $match)

功能:正则匹配

参数:

pattern  正则

subject 要进行匹配的字符串

match   匹配的结果,仅返回第一次匹配到的结果

返回:匹配到的次数。(0~1)



preg_grep(string $pattern,array $input)

功能:正则匹配

参数:

pattern  正则

input    要进行匹配的字符串数组。

返回:匹配的结果,返回格式:数组


分割

explode(string $delimiter,string $str[,int $limit])

功能:分割

参数:

delimiter 分割的标识字符串

str       要进行分割的字符串

limit     分割的次数

返回:分割好的字符串。格式:数组


preg_split(string $pattern,string $subject)

功能:字符串的分割

参数:

pattern 正则

subject 要进行分割的字符串

返回:被分割好的字符串


替换

str_replace(mixed $search,mixed $replace,mixed $str)

功能:在str字符串中查找search替换成replace

参数:

search 要查找的字符串

replace 要替换的字符串

str    原字符串

返回:替换后的字符串



preg_replace(string $pattern,string $replace,string $subject)

功能:正则替换

参数:

pattern 正则表达式

replace 要进行替换的字符串

subject 原字符串

返回:替换后的字符串



关注博客,更多精彩分享,敬请期待!
 

Tags: 面试题  

很赞哦! (0)

我的名片

网名:随心

职业:PHP程序员

现居:湖北省-武汉市

Email:704061912@qq.com