微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,第四章 字符串,正则表达式

原文地址:https://www.jb51.cc/php/28066.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐