PHP系列(七):正则表达式
0X00 正则表达式
0X01 定界符
哪些符号不能作为定界符?(a—z、A—Z、0—9、空格、\)
推荐使用 “/ /”
0X02 正则表达式常用符号及含意
. //任意一个字符(除了回车符‘\n’)
* //任意多个
+ //一次或多次出现
? //0次或者1次
^ //以。。开头
$ //以。。结尾
| //或
[] //原子表,可以指定取值的范围
{} //原子修饰符
\d //0——9
\D //非0——9
\w //a-z、A-Z、0-9
\W //非(a-z、A-Z、0-9)
\s //回车、空格、换行、Tab
\S //非(回车、空格、换行、Tab)
[a-z] //a-z
[A-Z] //A-Z
[0-9] //0-9
[^a-z] //非a-z
[^A-Z] //非A-Z
[^0-9] //非0-9
a{3,5} //3-5个连续的a
a{0,} //任意多个a,等同于“a*”
^a //以a开头
a$ //以a结尾
/abc/i //不区分大小写
/abc/s //视为单行匹配
/abc/m //视为多行匹配
/a+/U //取消重复的字符(如匹配了多个a,则显示一个a)
0X03 相关函数
preg_match //用于执行一个正则表达式匹配
preg_match_all //函数用于执行一个全局正则表达式匹配
preg_filter //执行一个正则表达式搜索和替换
preg_replace //执行一个正则表达式的搜索和替换
preg_grep //返回匹配模式的数组条目
preg_quote //转义正则表达式字符
preg_split //通过一个正则表达式分隔字符串
0X04 正则表达式实战
(1)URL解析
<?PHP
/**********常见URL************
http://www.bilibili.com
https://www.bilibili.com
www.bilibili.com
bilibili.com
*****************************/
$str = 'https://www.bilibili.com';
//正则表达式
$URL = '/(http|https)?(:\/\/)?(\w{3,}\.?)(\w+\.?)(\w+)/';
//匹配
preg_match($URL,$str,$res);
//判断是否匹配成功
if(preg_match($URL,$str,$res))
{
echo 'URL匹配成功,匹配结果为:<br />';
var_dump($res);
}
else
{
echo '匹配失败!';
}
?>
演示结果:
URL匹配成功,匹配结果为:
array(6) {
[0]=> string(24) "https://www.bilibili.com"
[1]=> string(5) "https"
[2]=> string(3) "://"
[3]=> string(4) "www."
[4]=> string(9) "bilibili."
[5]=> string(3) "com" }
大扎好,我是基于搜索引擎的安全咸鱼工程师,欢迎关注!
么!!!

浙公网安备 33010602011771号