Heim  >  Artikel  >  Backend-Entwicklung  >  PHP学习笔记--php教科书上关于正则表达式实例代码(摘要)_PHP教程

PHP学习笔记--php教科书上关于正则表达式实例代码(摘要)_PHP教程

WBOY
WBOYOriginal
2016-07-20 11:13:50916Durchsuche

<?<span php 
        </span><span /*</span><span posix扩展正则表达式函数</span><span */</span>
        <span /*</span><span ---------------------------------------------------</span><span */</span>
        <span $ereg</span> = '^[$][[:alpha:]_][[:alnum:]]*'<span ;
        </span><span ereg</span>(<span $ereg</span>,'$_name',<span $register</span>); <span //</span><span 匹配并且存放数组  //eregi()不分大小写</span>
        <span var_dump</span>(<span $register</span>); <span //</span><span 显示数组结构</span>
        
        <span /*</span><span ---------------------------------------------------</span><span */</span>
        <span $ereg</span> = 'tm'<span ;
        </span><span $str</span> = 'hello,tm,Tm,tM'<span ;
        </span><span $rep_str</span>=<span eregi_replace</span>(<span $ereg</span>,'TM',<span $str</span>); <span //</span><span 匹配成功的都用TM替换 ereg_replace() 分大小写</span>
        <span echo</span> <span $rep_str</span><span ;
        
        </span><span /*</span><span ---------------------------------------------------</span><span */</span>
        <span $ereg</span> = 'is'<span ;
        </span><span $str</span> = 'This is a register book.'<span ;
        </span><span $arr_str</span> = <span spliti</span>(<span $ereg</span>,<span $str</span>); <span //</span><span 分割字符串。按正则匹配 split() 分大小写</span>
        <span var_dump</span>(<span $arr_str</span><span );
        
        
        </span><span /*</span><span pcre兼容正则表达式函数  --无论从效率或者语法上pcre都略优于posix</span><span */</span>
        <span /*</span><span ---------------------------------------------------</span><span */</span>
        <span $preg</span> = '/\d{3,4}-?\d{7,8}/'<span ;
        </span><span $arr</span> = <span array</span>('043212345678','0431-7654321','12345678'); <span //</span><span 包含元素数组</span>
        <span $preg_arr</span> = <span preg_grep</span>(<span $preg</span>,<span $arr</span><span );
        </span><span var_dump</span>(<span $preg_arr</span><span );
        
        </span><span /*</span><span ---------------------------------------------------</span><span */</span>
        <span $str</span> = 'This is an example!'<span ;
        </span><span $preg</span> = '/\b\w{2}\b/'<span ;
        </span><span $num1</span> = <span preg_match</span>(<span $preg</span>,<span $str</span>,<span $str1</span>); <span //</span><span 匹配并返回成功个数,把匹配成功的放入数组 成功后,就停止</span>
        <span echo</span> <span $num1</span>."<br />"<span ;
        </span><span var_dump</span>(<span $str1</span><span );
        </span><span echo</span> "<br />"<span ;
        </span><span //</span><span 匹配并返回成功个数,把匹配成功的放入数组 成功后,不停止,直到匹配所有字符结束</span>
        <span $num2</span> = <span preg_match_all</span>(<span $preg</span>,<span $str</span>,<span $str2</span><span ); 
        </span><span echo</span> <span $num2</span>."<br />"<span ;
        </span><span var_dump</span>(<span $str2</span><span );
        
        </span><span /*</span><span ---------------------------------------------------</span><span */</span>
        <span $str</span> = '!、$、^、*、+、.、[、]、\\、/、b、<、>'<span ;
        </span><span $str2</span>='b'<span ;
        </span><span //</span><span 自动将正则特殊字符进行转义,如果有参数,字符中含参数字符也会被转义</span>
        <span $match_one</span> = <span preg_quote</span>(<span $str</span>,<span $str2</span><span ); 
        </span><span echo</span> <span $match_one</span><span ;
        
        </span><span /*</span><span ---------------------------------------------------</span><span */</span>
        <span $string</span> = '[b]粗体字[/b]'<span ;
        </span><span //</span><span 匹配并替换 用了反向引用</span>
        <span $b_rst</span> = <span preg_replace</span>('/\[b\](.*)\[\/b\]/i','<b>$1</b>',<span $string</span><span );
        </span><span echo</span> <span $b_rst</span><span ;
        
        </span><span /*</span><span ---------------------------------------------------</span><span */</span>
        <span function</span> c_back(<span $str</span><span )
        {
            </span><span //</span><span 反向引用</span>
            <span $str</span> = "<font color=<span $str</span>[1]><span $str</span>[2]</font>"<span ;
            </span><span return</span> <span $str</span><span ;
        }
        </span><span $string</span> = '[color=blue]字体蓝色[/color]'<span ;
        </span><span //</span><span preg_replace_callback函数中要替换的字符,换成了回调函数而已和 preg_replace差不多</span>
        <span echo</span> <span preg_replace_callback</span>('/\[color=(.*)\](.*)\[\/color\]/U',"c_back",<span $string</span><span );
        
        </span><span /*</span><span ---------------------------------------------------</span><span */</span>
        <span //</span><span 此函数书上没有,我自己写的示例给大家!</span>
        <span $preg</span> = "/\s+/"; <span //</span><span 这里也可以换成 "/\s{1,}/";</span>
        <span $str</span> = "I'm Chinese! I can eat"<span ;
        </span><span $arr</span> = <span preg_split</span>(<span $preg</span>,<span $str</span>); <span //查找并拆分。--这里有笔误,以前看过的朋友对不住了,现已更正</span>
        <span var_dump</span>(<span $arr</span><span );
    </span>?>

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/440339.htmlTechArticle? = '^[$][[:alpha:]_][[:alnum:]]*' ( ,'$_name', ); ( ); = 'tm' = 'hello,tm,Tm,tM' = ( ,'TM', ); = 'is' = 'This is a register book.' = ( , ); ( = '/\d{3,4}-?\d{7,8}/' = ('0432123456...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn