PHP 元字元與轉義

2021-07-10 15:21:14 字數 1093 閱讀 7569

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

\ 一般用於轉義字元

^ 斷言目標的開始位置(或在多行模式下是行首)

$ 斷言目標的結束位置(或在多行模式下是行尾)

. 匹配除換行符外的任何字元(預設)

[ 開始字元類定義

] 結束字元類定義

| 開始乙個可選分支

( 子組的開始標記

) 子組的結束標記

? 作為量詞,表示 0 次或 1 次匹配。位於量詞後面用於改變量詞的貪婪特性。 (查閱量詞)

* 量詞,0 次或多次匹配

+ 量詞,1 次或多次匹配

自定義量詞結束標記

//下面的\s匹配任意的空白符,包括空格,製表符,換行符。[^\s]代表非空白符。[^\s]+表示一次或多次匹配非空白符。

$p = '/^我[^\s]+(蘋果|香蕉)$/';

$str = "我喜歡吃蘋果";

if (preg_match($p, $str))

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

\ 轉義字元

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

- 標記字元範圍

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

//下面的\w匹配字母或數字或下劃線。

$p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/';

$str = "我的郵箱是[email protected]";

preg_match($p, $str, $match);

echo $match[0];

<?php

//請修改變數p的正規表示式,使他能夠匹配str中的**

$p = '/\d+\-\d+/';

$str = "我的**是010-12345678";

preg_match($p, $str, $match);

echo $match[0];

元字元與轉義(正規表示式)

正規表示式中具有特殊含義的字元稱之為元字元,常用的元字元有 一般用於轉義字元 斷言目標的開始位置 或在多行模式下是行首 斷言目標的結束位置 或在多行模式下是行尾 匹配除換行符外的任何字元 預設 開始字元類定義 結束字元類定義 開始乙個可選分支 子組的開始標記 子組的結束標記 作為量詞,表示 0 次或...

元字元與轉義 正則基本知識abc

正規表示式中具有特殊含義的字元稱之為元字元,常用的元字元有 一般用於轉義字元 斷言目標的開始位置 或在多行模式下是行首 斷言目標的結束位置 或在多行模式下是行尾 匹配除換行符外的任何字元 預設 開始字元類定義 結束字元類定義 開始乙個可選分支 子組的開始標記 子組的結束標記 作為量詞,表示 0 次或...

Linux Shell 萬用字元 元字元 轉義符使用

shell常見萬用字元 字元含義例項 匹配 0 或多個字元 a b a與b之間可以有任意長度的任意字元,也可以乙個也沒有,如aabcb,axyzb,a012b,ab。匹配任意乙個字元 a?b a與b之間必須也只能有乙個字元,可以是任意字元,如aab,abb,acb,a0b。list 匹配 list ...