正規表示式中常用的元字元

disable發表於2021-09-09

正規表示式中具有特殊含義的字元稱之為元字元,常用的元字元有:

一般用於跳脫字元
^ 斷言目標的開始位置(或在多行模式下是行首)
$ 斷言目標的結束位置(或在多行模式下是行尾)
. 匹配除換行符外的任何字元(預設)
[ 開始字元類定義
] 結束字元類定義
| 開始一個可選分支
( 子組的開始標記
) 子組的結束標記
? 作為量詞,表示 0 次或 1 次匹配。位於量詞後面用於改變數詞的貪婪特性。 (查閱量詞)

  • 量詞,0 次或多次匹配
  • 量詞,1 次或多次匹配
    { 自定義量詞開始標記
    } 自定義量詞結束標記

//下面的s匹配任意的空白符,包括空格,製表符,換行符。[^s]代表非空白符。[^s]+表示一次或多次匹配非空白符。
$p = '/^我[^s]+(蘋果|香蕉)$/';
$str = "我喜歡吃蘋果";
if (preg_match($p, $str)) {
echo '匹配成功';
}

元字元具有兩種使用場景,一種是可以在任何地方都能使用,另一種是隻能在方括號內使用,在方括號內使用的有:

跳脫字元
^ 僅在作為第一個字元(方括號內)時,表明字元類取反

  • 標記字元範圍

其中^在反括號外面,表示斷言目標的開始位置,但在方括號內部則代表字元類取反,方括號內的減號-可以標記字元範圍,例如0-9表示0到9之間的所有數字。

//下面的w匹配字母或數字或下劃線。
$p = '/[w.-]+@[a-z0-9-]+.(com|cn)/';
$str = "我的郵箱是Spark.eric@imooc.com";
preg_match($p, $str, $match);
echo $match[0];

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/200/viewspace-2799092/,如需轉載,請註明出處,否則將追究法律責任。

相關文章