ereg('匹配','字符串') 区分大小写
eregi -- 不区分大小写的正则表达式匹配
^ 匹配首
$ 匹配尾
. 匹配任意字符
注意:在匹配过程中匹配以上符号时需要转义,例如:"\$\."
[ ] 括号内为任意选择其一匹配,例如:p[hop]p php,pop,ppp等都可以(包含)
ereg('p[^hop]p','pap') (不包含,“^”去反的意思)
[a-zA-Z0-9] 表示大小写a到z及0到9所有字符
| 二选一 net|com
.* 所有字符
重复操作符:
? 0个或1个 例如:ereg('a?',',')是匹配的,表示字符串中有0个或者1个a
* 0个或更多 例如:ereg('a*',',')是匹配的
+ 1个或更多 例如:ereg('a+',',')是不匹配的
{n} 次数必须匹配 例如:ereg('a{2}','a,')是不匹配的,字符串中必须存在2个a
{n,m} 最少n次,最多m次
例如:ereg('a{2,3}','a,')是不匹配的,字符串中至少存在2个a,最多3个a。(但是如果你有超过3个的a,他也会认为匹配,因为他已经匹配了你的条件)
ereg('ab{2,3}c','abbbbc')是不匹配的,因为a和c限制了中间的b,上例的那个没有前后限制
{n,} 最少n次 例如:ereg('a{2,}','aaa')是匹配的
POSIX格式的正则表达式
[:alnum:] 表示数字字符 [0-9a-zA-Z]
[:alpha:] 表示字母 [a-zA-Z]
[:blank:] 空格和制表符 [ \t]
[:space:] 空白(包括换行,回车,制表符,空格,竖向制表符) [\n\r\t \x0B]
[:cntrl:] 控制符 [\x01-\x1F]
[:digit:] 数字 [0-9]
[:lower:] 小写字母 [a-z]
[:upper:] 大写字母 [A-Z]
[:xdigit:] 十六进制字符 [0-9a-fA-F]
[:ascii:] ASC2 [\x01-\x7F]
正则替换
ereg_replace('被替换','替换',字符串)
例:
$str = '这是[b]粗体[/b]字';
$newstr = ereg_replace('\[b](.*)\[/b]','\1',$str);
echo $newstr;
//这是粗体字
?>
分隔字符串
split()
$str = 'a,b,c,d';
$arr = split(',',$str); //$arr为数组
echo '
';
print_r($arr);
/*
$str = 'a,b@c%d';
$arr = split('[,@%]',$str);
*/
?>
和perl兼容的正则表达式
界定符
/pattern/
{pattern}
[pattern]
(pattern)
例:
preg_match('/\.(.*)\./','',$new);
// 转义\. /。。。。/为perl语言
echo $new[1]; //$new为数组,liuyu
//如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将
包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
?>
字符类
\s 空白 [\r\n \t]
\S 非空白 [^\r\n \t]
\w 字符 [0-9A-Za-z]
\W 非字符 [^0-9A-Za-z]
\d 数字 [0-9]
\D 非数字 [^0-9]
贪婪模式:
贪婪字符 非贪婪字符
? ??
* *?
+ +?
{n} {n}?
{n,m} {n,m}?
{n,} {n,}?
preg_match('/\.(.*)\./','.net',$new);
//liuyu.com
preg_match('/\.(.*?)\./','.net',$new);
//liuyu
非捕获 (?:)
preg_match('/(?:www)(.*)/','',$new);
//.liuyu.com
尾部选项:
/regexp/i 不区分大小写
/regexp/x 如果加上该修饰符,表达式中的空白字符将会被忽略,除非他已经被转义
/regexp/m 默认的正则开始"^"和结束"$"只是对于正则字符串如果在修饰符中加上"m",那么开始和结束将会指字符串的每一行:每一行的开头就是"^",结尾就是"$"。
/regexp/e 本修饰符仅仅对于replacement有用,代表在热placement中作为PHP代码。
/regexp/U 使用非贪婪模式
/regexp/A 如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分
preg_match('/LIUYU/i','',$new);
//liuyu
preg_match_all -- 进行全局正则表达式匹配
阅读(1007) | 评论(0) | 转发(0) |