king的园子

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" }
posted @ 2020-02-29 15:53  _元歌  阅读(254)  评论(0)    收藏  举报