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

2021-07-05 01:11:38 字數 899 閱讀 6060

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

\ 一般用於轉義字元

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

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

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

[ 開始字元類定義

] 結束字元類定義

| 開始乙個可選分支

( 子組的開始標記

) 子組的結束標記

? 作為量詞,表示 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];

元字元與正規表示式

這裡不討論那麼高深的知識.詳細的情況可以參考 精通正規表示式 此書甚好.大讚之.元字元就是shell本身用以匹配字串的預設方式 任意個字元 單個任意字元 匹配括號內字元 匹配非括號內字元 上述二者均可以利用 來表示範圍,比如 0 9 表示匹配0 9的所有數字 正規表示式就比較嚴謹和正規了.通常用於g...

元字元與正規表示式

元字元 shell萬用字元 匹配任意乙個字元 匹配任意數量的字元 abc 匹配abc中的任意乙個字元 a z 匹配a z中的任意乙個字元 a c 匹配除了a c中的字元 正規表示式 grep命令支援的常用元字元 行首 grep aaa file1 搜尋file1中以aaa開頭的所有行 grep ab...

正規表示式 元字元

現在你已經知道幾個很有用的元字元了,如 b 還有 d 當然還有更多的元字元可用,比如 s 匹配任意的空白符,包括空格,製表符 tab 換行符,中文全形空格等 w匹配字母或數字或下劃線或漢字等。ba w b 匹配以字母a 開頭的單詞 先是某個單詞開始處 b 然後是字母a 然後是任意數量的字母或數字 w...