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
萌豚 Moechu
正则用的不多记不住,所以每次要用都得去查一查,收藏了!
佛系派
对于做站的人来说值得收藏