PHP学习之正则表达式

现在我们大家所说的正则表达式基本上是指兼容Perl风格的正则表达式。POSIX风格的正则表达式基本上没人使用了,所以从PHP5.3起,已经不推荐使用了,可能到PHP的下一个版本就会把相关的函数删除。 关于正则表达式,因为太复杂,所以以后想专看一本正则的书,所以只介绍兼容Perl风格的正则表达式的一些函数

1. 定界符


定界符表示正则表达式的开始和结尾,一般用斜线(/)表示。在PHP中(其它语言暂时没有测试过),它也可以用其它的非数字字母的字符来代替。如/\d+/和#\d+#的表示同一个正则表达式\d+。同时,也可以用小括号对,中括号对,大括号对做为定界符,如[\d+]。

2. 函数

匹配函数: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)

参考资料:
PHP程序设计,2003,第四章 字符串,正则表达式

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...