Maison > Article > développement back-end > PHP学习笔记--php教科书上关于正则表达式实例代码(摘要)_PHP教程
<?<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>?>