标签:
平常很少用到正则表达式,因为在字符串那部分已经有很多函数,可以实现大部分需要的功能,比如字符串查找,截取,拼接,代替....但是在某些时候,PHP自己定义的字符串函数并不能解决复杂一点的问题。具体情况就看一下部分:
以下实例都是用 int preg_match_all($search,$str,$arr); 这个函数就是在$str中查找是否存在$search,并将结果保存在$arr中。先看参数,$str就是现有的、提供给你的,查找的范围就是这个字符串;$search为需要匹配的字符串,也就是查字典需要查的字;而$arr则是查询结果集,是一个数组。可用print_r()或者var_dump()打印结果。
例1、简单匹配字符串
<?php $search=‘/test/‘; $str=‘asfkljsdfgtestkjflstestjfkls‘; $num=preg_match_all($search,$str,$arr); print $num; print_r($arr); ?>
输出:2 Array ( [0] => Array ( [0] => test [1] => test ) )
表示在$str中匹配到两次‘test’。$search中需要的字符串用双斜线扩(// 称为分隔符)起来,还可以用||,##,!!,@@等扩起来。
一、元字符
常用的元字符:
| \d | 匹配一个数字字符 |
| \D | 匹配一个非数字字符 |
| \s | 匹配任意空白符(换行、空格、制表符等) |
| \S | 匹配任意非空白符 |
| \w | 匹配字母、数字、下划线或者汉字 |
| \W | 匹配除字母、数字、下划线或者汉字以外的字符 |
| \b | 匹配单词的开始或结束 |
| \B | 匹配的不是单词的开始或结束 |
| . | 匹配出换行符意外的任意字符 |
| ^ | 匹配字符串的开始 |
| $ | 匹配字符串的结束 |
| - | 表示范围 |
| [] | 表示匹配括号中的某一个字符,记住是一个 |
| [^x] | 匹配出x以外的任意字符 |
| * | 匹配前面一个字符出现0次,1次,或者多次 |
| + | 匹配前面一个字符出现1次,或者多次 |
| ? | 匹配前面一个字符出现0次,或者1次 |
| {n} | 匹配前面一个字符干好出现n次 |
| {n,} | 匹配前面一个字符至少出现n次 |
| {n,m} | 匹配前面一个字符至少出现n次,最多不超过m次 |
虽然元字符有这么多,但我已经按照规律排列好了,很好记忆。
例2、以{n,m}为例
<?php
$search=‘/te{3,5}st/‘;
$str=‘abcteestabcteeestabc‘;
$num=preg_match_all($search,$str,$arr);
print $num;
print_r($arr);
?>
输出:1 Array ( [0] => Array ( [0] => teeest ) )
标签:
原文地址:http://www.cnblogs.com/-beyond/p/5865563.html