php正则表达式

Posted rickyy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php正则表达式相关的知识,希望对你有一定的参考价值。

1、正则表达式的简介
  正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。到目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。
  在php中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程序性描述。
  正则表达式的三个作用:匹配、用新文本代替匹配文本、将一个字符串拆分为一组更小的信息块。
  在PHP中有两套正则表达式函数库,两者功能相似,只是执行效率略有差异:
    一套是由PCRE(Perl Compatible Regular Expression)库提供的。使用“preg_”为前缀命名的函数;
    一套由POSIX(Portable Operating System Interface of Unix )扩展提供的。使用以“ereg_”为前缀命名的函数;
2、正则表达式的语法规则
  行定位符(^与$)
    行定位符是用来描述字符串的边界。“$”表示行结尾“^”表示行开始如"^de",表示以de开头的字符串 "de$",表示以de结尾的字符串。

  单词定界符
    我们在查找的一个单词的时候,如an是否在一个字符串”gril and body”中存在,很明显如果匹配的话,an肯定是可以匹配字符串“gril and body”匹配到,怎样才能让其匹配单词,而不是单词的一部分呢?这时候,我们可以是哟个单词定界符\b。 \ban\b 去匹配”gril and body”的话,就会提示匹配不到。 当然还有一个大写的\B,它的意思,和\b正好相反,它匹配的字符串不能使一个完整的单词,而是其他单词或字符串中的一部分。如\Ban\B。

  选择字符(|) ,表示或
    选择字符表示或的意思。如Aa|aA,表示Aa或者是aA的意思。注意使用”[]”与”|”的区别,在于”[]”只能匹配单个字符,而”|”可以匹配任意长度的字符串。在使用”[]”的时候,往往配合连接字符”-“一起使用,如[a-d],代表a或b或c或d。

  排除字符,排除操作
    正则表达式提供了”^”来表示排除不符合的字符,^一般放在[]中。如[^1-5],该字符不是1~5之间的数字。

  限定符(?*+{n,m})
    限定符主要是用来限定每个字符串出现的次数。

 
限定字符 含义
零次或一次
* 零次或多次
+ 一次或多次
{n} n次
{n,} 至少n次
{n,m} n到m次

 

 

 

 

 

 

  点号操作符

    匹配任意一个字符(不包含换行符)

  表达式中的反斜杠(\)

    表达式中的反斜杠有多重意义,如转义、指定预定义的字符集、定义断言、显示不打印的字符。

     

 

以上是关于php正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

PHP正则表达式的使用技巧

PHP正则表达式问题

php正则表达式是啥?

PHP正则表达式如何写?

php 正则表达式 url匹配

PHP正则表达式