在上一篇博文中秘症,冷月帶大家初步了解了正則表達式以及在php中正則表達式的常用函數(shù),相信大家在學習后有一定的收獲。今天服球,冷月將給小伙伴們帶來正則表達式的基本語法和一些簡單的實例献联。
正則表達式的基本語法
定界符
表示一個正則表達式的開始和結束竖配,一般用特殊符號來表示。簡單來說就是用特殊符號把內容包住酱固。
/……/
-
……#
{……}
我們來看一段示例代碼:
<?php
var example = '/[0-9]/'; //在php中推薦用這種方式
var example = '#[0-9]#';
var example = '{[0-9]}';
?>
regexpal工具介紹及獲取方式
regexpal是一個在線的正則表達式驗證工具械念,我們可以方便的書寫我們想要的正則表達式并且直觀的看到匹配結果。
<img src="https://img-blog.csdnimg.cn/2020021615263351.png" width="80%">
如圖所示运悲,匹配出0-9的數(shù)字龄减,下面待匹配到的結果就會高亮現(xiàn)實。regexpal的官網是https://www.regexpal.com/ 國內訪問非常的慢班眯。但是沒有關系希停,冷月為大家找到了一個國內的鏡像版本,如何獲取呢署隘?大家可以關注冷月的微信公眾號:學長冷月宠能。回復:正則表達式磁餐。冷月將會把整理好的regexpal工具和學習資料违崇,一起發(fā)給您。
原子
原子是正則表達式的最基本的組成單位诊霹,分為可見原子和不可見原子羞延。簡單來說可見原子就是肉眼可以看見的字符,比如Unicode中的可見字符脾还。而不可見原子包括換行伴箩、回車、制表符鄙漏、空格等非打印字符嗤谚。
原子的篩選方式
<img src="https://img-blog.csdnimg.cn/20200216160217986.png" width="80%">
下面用 regexpal為大家舉例:
匹配a或者b:
<img src="https://img-blog.csdnimg.cn/20200216155740692.png" width="80%">
匹配a或者b任意一個原子:
<img src="https://img-blog.csdnimg.cn/20200216155641363.png" width="80%">
匹配除了a或者b任意一個原子:
<img src="https://img-blog.csdnimg.cn/20200216155801263.png" width="80%">
原子的集合
<img src="https://img-blog.csdnimg.cn/20200216160708669.png" width="80%">
量詞
簡單來說就是記錄原子出現(xiàn)的數(shù)量棺蛛,下面列出常見的量詞
{n}:前面的原子恰好出現(xiàn)n次
{n,}:前面的原子最少出現(xiàn)n次
{n,m}:表示前面的原子最少出現(xiàn)n次,最多出現(xiàn)m次
*號 :表示前面的原子 出現(xiàn) 0,1或多次 巩步,等價于{0,}
+:表示前面的原子 出現(xiàn) 1或多次 旁赊,等價于{1,}
?:表示前面的原子 出現(xiàn) 0或1次 椅野,等價于{0,1}
邊界控制
:匹配字符串開始的位置彤恶,也就是說必須以后的第一個字符開頭;
前的第一個字符結尾声离。
模式單元
修正模式:
貪婪模式:匹配結果存在歧義時取其長;
懶惰模式:匹配結果存在歧義時取其短瘫怜。
常見的修正模式:
U:懶惰匹配
u:貪婪匹配
i:忽略英文字母大小寫
x: 忽略空白
簡單實例
<?php
$notEmpty = '/.+/'; //非空
$floatTwo = '/\d+\.\d{2}$/'; //保留兩位小數(shù)
$phone = '/1(3|5|7|8|4)\d{9}/'; //手機號
$email = '/^\w+(\.\w+)*@\w+(\.\w+)+$/'; //email
$URL = '/(https?://)?(\w+\.)+[a-zA-Z]+$/'; //url地址
?>
歡迎關注我的公眾號:學長冷月术徊,獲得獨家整理的學習資源和日常干貨推送。
如果您對我的專題內容感興趣鲸湃,也可以關注我的博客:guoyu7.com