在上一篇博文中,冷月帶大家初步瞭解了正則表達式以及在php中正則表達式的常用函數,相信大家在學習後有一定的收穫。今天,冷月將給小夥伴們帶來正則表達式的基本語法和一些簡單的實例。
正則表達式的基本語法
定界符
表示一個正則表達式的開始和結束,一般用特殊符號來表示。簡單來說就是用特殊符號把內容包住。
- /……/
- {……}
我們來看一段示例代碼:
<?php
var example = '/[0-9]/'; //在php中推薦用這種方式
var example = '#[0-9]#';
var example = '{[0-9]}';
?>
regexpal工具介紹及獲取方式
regexpal是一個在線的正則表達式驗證工具,我們可以方便的書寫我們想要的正則表達式並且直觀的看到匹配結果。
如圖所示,匹配出0-9的數字,下面待匹配到的結果就會高亮現實。regexpal的官網是https://www.regexpal.com/ 國內訪問非常的慢。但是沒有關係,冷月爲大家找到了一個國內的鏡像版本,如何獲取呢?大家可以關注冷月的微信公衆號:學長冷月。回覆:正則表達式。冷月將會把整理好的regexpal工具和學習資料,一起發給您。
原子
原子是正則表達式的最基本的組成單位,分爲可見原子和不可見原子。簡單來說可見原子就是肉眼可以看見的字符,比如Unicode中的可見字符。而不可見原子包括換行、回車、製表符、空格等非打印字符。
原子的篩選方式
下面用 regexpal爲大家舉例:
匹配a或者b:
匹配a或者b任意一個原子:
匹配除了a或者b任意一個原子:
原子的集合
量詞
簡單來說就是記錄原子出現的數量,下面列出常見的量詞
{n}:前面的原子恰好出現n次
{n,}:前面的原子最少出現n次
{n,m}:表示前面的原子最少出現n次,最多出現m次
*號 :表示前面的原子 出現 0,1或多次 ,等價於{0,}
+:表示前面的原子 出現 1或多次 ,等價於{1,}
?:表示前面的原子 出現 0或1次 ,等價於{0,1}
邊界控制
^:匹配字符串開始的位置,也就是說必須以^後的第一個字符開頭;
$:匹配字符串結尾的位置,也就是說必須以$前的第一個字符結尾。
模式單元
修正模式:
貪婪模式:匹配結果存在歧義時取其長;
懶惰模式:匹配結果存在歧義時取其短。
常見的修正模式:
U:懶惰匹配
u:貪婪匹配
i:忽略英文字母大小寫
x: 忽略空白
簡單實例
<?php
$notEmpty = '/.+/'; //非空
$floatTwo = '/\d+\.\d{2}$/'; //保留兩位小數
$phone = '/1(3|5|7|8|4)\d{9}/'; //手機號
$email = '/^\w+(\.\w+)*@\w+(\.\w+)+$/'; //email
$URL = '/(https?://)?(\w+\.)+[a-zA-Z]+$/'; //url地址
?>
歡迎關注我的公衆號:學長冷月,獲得獨家整理的學習資源和日常乾貨推送。
如果您對我的專題內容感興趣,也可以關注我的博客:guoyu7.com