[转载]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 位部落客按了赞: