[轉載][PHP]正規表示式基本語法

轉載自: 中文 PHP 資訊站


首先讓我們看兩個特殊的符號: ^ 和 $。他們的作用是分別指出一個字串的開始和結束。例子如下:

  • ^The:表示所有以「The」開始的字串(「There」、「The cat」等);
  • of despair$:表示所有以「of despair」結尾的字串;
  • ^abc$:表示開始和結尾都是「abc」的字串--呵呵,只有「abc」自己了;
  • notice:表示任何包含「notice」的字串。

像最後那個例子,如果你不使用兩個特殊字元,你就在表示要查找的串在被查找串的任意部分--你並不把它定位在某一個頂端。

其他還有 *+? 這三個符號,表示一個或一序列字元重復出現的次數。它們分別表示「沒有或更多」、「一次或更多」還有「沒有或一次」。下面是幾個例子:

  • ab*:表示一個字串有一個 a 後面跟著零個或若干個 b。(a, ab, abbb, ...);
  • ab+:表示一個字串有一個 a 後面跟著至少一個 b 或者更多;
  • ab?:表示一個字串有一個 a 後面跟著零個或者一個 b;
  • a?b+$:表示在字串的末尾有零個或一個 a 跟著一個或幾個 b。

你也可以使用範圍,用大括號括起來,用以表示重復次數的範圍。

  • ab{2}:表示一個字串有一個 a 跟著 2 個 b(abb);
  • ab{2,}:表示一個字串有一個 a 跟著至少 2 個 b;
  • ab{3,5}:表示一個字串有一個 a 跟著 3 到 5 個 b。

請注意,你必須指定範圍的下限(如:{0,2} 而不是 {,2})。還有,你可能注意到了 *+ 和 ? 相當於 {0,}{1,}{0,1}

還有一個 |,表示「或」操作:

  • hi|hello:表示一個字串裏有「hi」或者「hello」;
  • (b|cd)ef:表示「bef」或「cdef」;
  • (a|b)*c:表示一串「ab」混合的字串後面跟一個「c」;

. 可以替代任何字元:

  • a.[0-9]:表示一個字串有一個「a」後面跟著一個任意字元和一個數位;
  • ^.{3}$:表示有任意三個字元的字串(長度為 3 個字元);

中括號表示某些字元允許在一個字串中的某一特定位置出現:

  • [ab]:表示一個字串有一個「a」或「b」(相當於 a|b);
  • [a-d]:表示一個字串包含小寫的「a」到「d」中的一個(相當於 a|b|c|d 或者 [abcd]);
  • ^[a-zA-Z]:表示一個以字母開頭的字串;
  • [0-9]%:表示一個百分號前有一位元的數位;
  • ,[a-zA-Z0-9]$:表示一個字串以一個逗號後面跟著一個字母或數位結束。

你也可以在中括號裏用 ^ 表示不希望出現的字元,^ 應在中括號裏的第一位。(如:%[^a-zA-Z]% 表示兩個百分號中不應該出現字母)。

為了逐字表達,你必須在「^.$()¦*+?{\」這些字元前加上轉譯字元 \

請注意在中括號中,不需要轉譯字元。

參考網頁

  1. No comments yet.

  1. No trackbacks yet.

return top

%d 位部落客按了讚: