php正则表达式

正则表达式:就是描述字符串排列模式的一种自定义语法规则

注意:如果可以使用字符串处理函数完成的任务,就不要使用正则,有些复杂的操作,只能使用正则完成。

 

"/\<bck/*&/.?\\//”

  1. 正则表达式也是一个字符串
  2. 由具有特殊意义的字符组成
  3. 具有一点编写规则,也是一种模式
  4. 可以看作一种编程语言
  5. 正则表达式必须结合函数使用,否则只是一个字符串

基本格式:/原子和元字符/模式修正符号

 

在PHP中提供了两套正则表达式函数库

  1. POSIX扩展正则表达式函数 (ereg_)
  2. Perl兼容正则表达式函数 (preg_)

  函数共能一样,由于Perl效率较高,所有推荐使用Perl兼容正则表达式(POSIX基本被淘汰)

 

正则表达式语法:

  1. 定界符号   除了字母、数字和反斜线\以外的任何字符 如://  ||  { } !!   (一般使用//)
  2. 原子     最基本组成单位(必须)包括所有字符

           代表范围的原子

            \d (表示任意一个十进制数字)

            \D (表示任意一个除数字以外的字符)

            \s (表示任意一个空白字符)

            \S (表示任意一个非空白)

            \w (表示任意一个字,a-z,A-Z,0-9和_)

            \W (表示任意一个非字)

 

            自定义原子表[]

             [13579],[02468],[a-f],[a-z5-8]

             [^a-z]表示取反(必须放在前面)

 

  1. 元字符  用来修饰原子的字符 (* + ? . | {} () \b \B)

             *   表示前面的原子可以出现0次,1次,多次

             +   表示前面原子可以出现1次,2次,多次

             ?    表示前面的原子可以出现0次或1次

             {}  用于定义前面原子出现的次数   {3} 出现3次;{3,5} 可出现3到5次

             .     默认可表示除换行外的任意字符

             ^    放在正则表达式开头,表示表达式必须出现在开头

             $     放在正则表达式的末尾,表示表达式必须出现在末尾

             |      表示或的关系 (优先级别最低)

             \b    表示一个边界

             \B    表示一个非边界

             ()     1.表示大原子使用 如(abc)+ 表示abc可以出现多次,而不是c

                     2.作为子模式使用,全部匹配作为一个大模式放到数组第一个,每个子模式顺序放

                     3.可以取消子模式,在()类最前面使用?:

                     4.反向引用,可以在模式中直接将子模式取出来,再作为正则表达式模式的一部分。

                         \1取第一个子模式  \n 取第n个子模式  双引号"\\1”  单引号 '\1'

              优先级:

                     \

                    () (?:) []

                    * + ? {}

                    ^ $ \b

                     |

            

  1. 模式修正符号 i u

             作用:对整个正则表达式调优使用,也可以说对正则表达式功能的扩展

             i  不区分大小写

             m  默认情况下将字符串视为一行,视为多行后,任何一行都可以以正则开始或结束

             s    如果没有使用这个模式修正符号式,元字符中的.默认不能表示换行符

             x    表示模式中的空白表示不计

             e    正则表达式必须使用在preg_replace替换字符串的函数中时才可以使用

             A     表示必须以表达式开头

             Z      表示必须以表达式结尾

 

正则表达式处理函数:

  1. preg_match(正则表达式,字符串);           匹配函数
正则表达式匹配函数

 

  1. preg_match_all(正则表达式,字符串[,数组[,常量]])

      用于进行全局正则表达式匹配,即会匹配用括号括起来的子模式

  1. preg_quote()   会对正则表达式中特定字符的前面加入一个转义字符,这些字符包括:. \\ + * ? [^] $ () {} = ! <> | :
  2. preg_split(正则表达式,返回数组[,返回个数[,常量]])

      用于分割字符串

  1. preg_grep(正则表达式,数组) 匹配字符串,功能与match差不多,不同之处在于grep对给定的数组进行匹配,并返回一个新的数组。
  2. preg_replace(正则表达式,替换字符,字符串)

常用正则表达式:

电子邮件:  $email='/\w*@\w*\.com/i';

正则表达式匹配函数

手机号码:    $phonenum='/^1\d{10}/';

正则表达式匹配函数

posted @ 2011-11-02 21:26  helloxyz  Views(302)  Comments(0Edit  收藏  举报