zoukankan      html  css  js  c++  java
  • PHP正则表达式

    元字符在正则表达式内部具有的独特含义:

     

    字符

    名字

    含义

    ^

    补字符号

    指示字符串的开始

    $

    美元符号

    指示字符串的结尾

    .

    句点

    任意单个字符

    |

    竖线

    二中选一()

     

      用法:

            'a|b':匹配包含ab的字符串

             '^a':匹配以a开头的任何字符串

             '$a':   匹配以a结尾的任何字符串

             '^a$':只匹配a

     

    量词规定某个字符可以或必须出现的次数:

     

    字符

    含义

    ?

    0次或1

    *

    0次或多次

    +

    1次或多次

    {x}

    正好出现x

    {x,y}

    x次和y次之间(xy)

    {x,}

    至少出现x

     

    类别是把字符串防止在方括号[]内创建的:

     

    字符串类别是用于定义模式的更灵活的工具:

     

    类别

    含义

    [a-z]

    任意小写字母

    [a-zA-Z]

    任意字母

    [0-9]

    任意数字

    [\f\r\t\n\v]

    任意空白

    [aeiou]

    任意元音字母

    [[:alnum:]]

    任意字母或数字

    [[:alpha:]]

    任意字母

    [[:blank:]]

    任意制表符或空格

    [[:digit:]]

    任意字母

    [[:lower:]]

    任意小写字母

    [[:upper:]]

    任意大写字母

    [[:punct:]]

    任意符号

    [[:space:]]

    任意空白

     

     

    匹配模式:

               PHP中构建了两个函数,它们明确用于匹配字符串内的模式,这两个函数时erge()eregi()(Perl兼容的正则表达式代之以使用preg_match())。它们的唯一区别:ereg()把模式视为区分大小写,而eregi()则不区分大小写。如果模式匹配,这两个函数都会返回true,如果不匹配,则为false

     

     

       eg

           验证电子邮件:

     

              

    if(!eregi('^[[:alnum:]][a-z0-9_\.\-]*@[a-z0-9\.\-]+\.[a-z]{2,4}$',stripslashes(trim($_POST['email']))))

      

     

         验证URL

     

            

     if(!eregi('^((http|https|ftp)://)?([[:alnum:]\-\.])+(\.)([[:alnum:]]){2,4}([[:alnum:]/+=%&_\.~?\-]*)$
    ',stripslashes(trim($_POST['url']))))

      

     

         验证URL类别:

     

            if(!isset($_POST['url_category']) OR !is_numeric($_POST['url_category']))

     

    匹配和替换模式

     

    用于用稍微不同的模式或特定的文本替换:

       ereg_replace('pattern','replace','string')                 //区分大小写

       eregi_replace('pattern','replace','string')                 //不区分大小写

     

    1  
    2 if(eregi('^[[:alnum:]][a-z0-9_\.\-]*@[a-z0-9\.\-]+\.[a-z]{2,4}$',stripslashes(trim($_POST['email']))))
    3 {
    4 $email=eregi_replace('^[[:alnum:]][a-z0-9_\.\-]*@[a-z0-9\.\-]+\.[a-z]{2,4}$',<a href="mailto:\\0">Email</a>,stripslashes(trim($_POST['email'])));
    5 }

      

  • 相关阅读:
    服务级后门自己做——创建服务
    使用Win32创建串口通讯程序
    LoadImage with resource 出现未定义
    direct path write等待事件
    enq: TX row lock/index contention、allocate ITL等待事件
    enq: TT contention等待事件
    enq: TM contention等待事件
    enq: RO fast object reuse等待事件
    direct path write temp等待事件
    enq: US contention等待事件
  • 原文地址:https://www.cnblogs.com/fanchangfa/p/2171271.html
Copyright © 2011-2022 走看看