PHP正则表达式

分享一下最近学习php的一些笔记

定义字符集

[a-z]   [abc]   [a-zA-Z]   [0-9]   [3-9]   [A-Za-z0-9_]

特殊字符集

$:匹配字符串的结尾位置

^:匹配字符串的开始位置

.:匹配除了\n的任意字符

+:匹配在其前面的单元出现1次或以上
例子:abbbbbaaa
正则表达式:a+
结果:a,aaa

?:匹配在其前面的单元出现0次或1次(相当在字符串里去询问匹配的字符)
例子:abbbbbaaa
正则表达式:a?
结果:a,a,a,a

*:匹配在其前面的单元出现0次或1次(相当在字符串里去询问匹配的字符,假如相同的字符连接起来则匹配连接的字符串)
例子:abbbbbaaa
正则表达式:a*
结果:a,aaa

\:用来进行字符的转义
例子:abbbbbaaa++(直接输入+是匹配不了的)
正则表达式:\+
结果:+

|:指明两项之间的一个选择
例子:abbaaa
正则表达式:a|b
结果:a,b,b,a,a,a

组合字符集

preg_match
preg_match_all
例子:
<?php
$str = "sadasfgdsag2414135235sadasd";
$preg = "/\d/";
$res = preg_match($preg,$str,$out);
var_dump($str);
var_dump($res);
var_dump($out);
echo "<hr />";
$res = preg_match_all($preg,$str,$out);\
var_dump($str);
var_dump($res);
var_dump($out);
?>

\d:匹配0-9数字 [0-9]

\D:匹配非数字字符 [^0-9] [^abc] 不是括号内的任意字符

\w:与任何单词字符匹配,包括下划线 相当于[A-Za-z0-9_]

\W:与任何非单词字符匹配,包括下划线 相当于[^A-Za-z0-9_]

\s:匹配空格字符

\S:匹配非空格字符

\b:匹配单词边界
例子:wold hello never
正则表达式:[a-z]+er\b
结果:never

\B:匹配非单词边界
例子:wo33ld33 wo22ld22 wo44ld
正则表达式:\w+ld\B
结果:wo33ld wo22ld

限定字符集

{m}:其前一个单元,严格出现m次
例子:aaa aaaaaa aaaa vvv vvvvv awsd
正则表达式:[a]{4}
结果:aaaa aaaa

{m,}:其前一个单元,至少出现m次,至多不限制
例子:aaa aaaaaa aaaa vvv vvvvv awsd
正则表达式:[a]{4,}
结果:aaaaaa aaaa

{m,n}:其前一个单元,至少出现m次,至多n次
例子:aaa aaaaaa aaaaa aaaa vvv vvvvv awsd
正则表达式:[a]{4,6}
结果:aaaaaa aaaaa aaaa

Comments | 2 条评论

  • 萌豚 Moechu

    正则用的不多记不住,所以每次要用都得去查一查,收藏了!

  • 佛系派

    对于做站的人来说值得收藏

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息