一、什麼是正則表達式
正則表達式是一種用於搜索、匹配、替換某種文本的字元串模式,常用於處理文本數據、校驗輸入數據等。在PHP中,可以使用preg系列函數(preg_match、preg_replace等)處理正則表達式。
二、正則表達式語法
正則表達式語法包含了一些特定的字元和語法規則,常用的語法規則包括:
- 字元匹配:使用單個字元匹配特定的字元,如字元a匹配輸入字元串中的字元a。
- 字符集合:使用字符集合匹配一組字元,如[abc]匹配輸入字元串中的字元a、b、c。
- 量詞:用於指定字元或字符集合出現的次數,如a{3}匹配aaa。
- 選擇符:用於匹配多個可選的內容,如a|b匹配a或b。
- 分組:用於對正則表達式的一部分進行分組,方便後續操作,如(a|b){3}匹配aaa、aab、aba等。
- 反義:用於匹配除了指定字元或字符集合之外的內容,如[^abc]匹配輸入字元串中除了a、b、c之外的字元。
三、實例演示
1. 匹配手機號碼
$pattern = '/^1[3-9]\d{9}$/'; $mobile = '13912345678'; if(preg_match($pattern, $mobile)){ echo '匹配成功'; }else{ echo '匹配失敗'; }
說明:
該正則表達式使用了量詞和字符集合,匹配以1開頭,第二位為3-9的數字,後續跟9位數字的手機號碼。因為手機號碼格式較為固定,所以可以使用正則表達式進行校驗。
2. 替換HTML標籤
$pattern = '/]+>/'; $content = '這是一段有著大標題的文本
'; $result = preg_replace($pattern, '', $content); echo $result;
說明:
該正則表達式使用了字符集合和量詞,匹配一段HTML標籤(以字元的內容,以>結尾)。在替換時,將匹配到的標籤替換成空字元,即刪除了所有HTML標籤。
3. 提取URL鏈接中的域名
$pattern = '/[a-zA-z]+:\/\/[^\s]*/'; $link = '這是一篇示例文章,請閱讀原文獲取更多信息。'; preg_match($pattern, $link, $matches); $domain = parse_url($matches[0])['host']; echo $domain;
說明:
該正則表達式使用了字符集合、量詞和分組,匹配一段URL鏈接(包括協議和域名,後續可能會有其他內容)。在獲取到匹配結果之後,使用parse_url函數解析出域名部分,即可獲取到該URL鏈接對應的域名。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/227782.html