PHP学习之正则表达式
前端之家收集整理的这篇文章主要介绍了
PHP学习之正则表达式,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
现在我们大家所说的正则表达式基本上是指兼容Perl风格的正则表达式。POSIX风格的正则表达式基本上没人使用了,所以从PHP5.3起,已经不推荐使用了,可能到PHP的下一个版本就会把相关的函数删除。 关于正则表达式,因为太复杂,所以以后想专看一本正则的书,所以只介绍兼容Perl风格的正则表达式的一些函数。
1. 定界符
定界符表示正则表达式的开始和结尾,一般用斜线(/)表示。在
PHP中(其它语言暂时没有测试过),它也可以用其它的非数字字母的字符来代替。如/\d+/和#\d+#的表示同一个正则表达式\d+。同时,也可以用小括号对,中括号对,大括号对做为定界符,如[\d+]。
匹配
函数:preg_match(); 以及preg_match_all();
替换
函数:preg_replace();
拆分
函数:preg_split();
过滤
函数:preg_grep(); 示例
代码:
<div class="codetitle">
<a style="CURSOR: pointer" data="49457" class="copybut" id="copybut49457" onclick="doCopy('code49457')"> 代码如下: <div class="codebody" id="code49457">
$a = <<< TEXT
aaaaaaa 15
bbbbbbb 16
TEXT;
$ret = preg_match(/(\w+) (\d+)/,$a,$match);
// $ret : 1
// $match : array(aaaaaaa 15′,aaaaaaa,15′) $ret = preg_match_all(/(\w+) (\d+)/,$match);
// $ret : 2
// $match : array(
// array(aaaaaaa 15′,bbbbbbb 16′),
// array(bbbbbbb,bbbbbbb),
// array(15′,16′),
// ) $ret = preg_match_all(/(\w+) (\d+)/,$match,PREG_SET_ORDER);
// $ret : 2
// $match : array(
// array(aaaaaaa 15′,bbbbbbb,15′),
// array(bbbbbbb 16′,
// ) $b = preg_replace(/(\w+) (\d+)/,\1,\2′,$a);
// $b : aaaaaaa,15
// bbbbbbb,16′ $c = preg_split(/\s/,$a);
// $c : array(aaaaaaa,15′,16′) $files = array(aa.txt,bb.xls,cc.txt);
$txtFiles = preg_grep(/.*.txt/,$files);
// $txtFiles : array(aa.txt,cc.txt)