zoukankan      html  css  js  c++  java
  • php中PCRE正则表达式分隔符的使用

    转自:http://www.baiwar.com/post/the-use-of-php-pcre-regex-delimiter.html

    php5.3.0以前,PHP可使用两套正则表达式规则,一是IEEE制定的POSIX,另一套是PCRE的PERL兼容正则表达式规则。
    在php5.3.0后,POSIX被弃用。

    PCRE正则表达式需要以分隔符闭合:

    1. 分隔符可以使用任意的非字母数字,非反斜线,非空的字符,如常用的正斜线(/)、hash符号(#) 以及取反符号(~)。

    2. 甚至其首尾可以使用括号(如”()”、”[]”及”{}”)闭合。

    3. 但若使用元字符(如+、*、^)作为分隔符,则该正则表达式中不能使用该分隔符(转义的除外)。

    实例:

    1. $url="http://baiwar.com/#";
    2. //使用反斜杠'/'作为分隔符
    3. preg_match('/^http://[a-z]+.[a-z]{2,6}/#/',$url,$match);
    4. echo "//使用反斜杠'/'作为分隔符<br>";
    5. echo "preg_match('/^http://[a-z]+.[a-z]{2,6}/#/',$url,$match);的输出结果为:<br>";
    6. echo $match[0]."<hr>";
    7. //使用反斜杠'#'作为分隔符(反斜杠可以不使用转义符,但其中的'#'需要使用转义符)
    8. preg_match('#^http://[a-z]+.[a-z]{2,6}/##',$url,$match);
    9. echo "//使用反斜杠'#'作为分隔符(反斜杠可以不使用转义符,但其中的'#'需要使用转义符)<br>";
    10. echo "preg_match('#^http://[a-z]+.[a-z]{2,6}/##',$url,$match);的输出结果为:<br>";
    11. echo $match[0]."<hr>";
    12. //使用反斜杠'^'作为分隔符(反斜杠可以不使用转义符),元字符不能使用'^',否则报错
    13. preg_match('^http://[a-z]+.[a-z]{2,6}/#^',$url,$match);
    14. echo "//使用反斜杠'^'作为分隔符(反斜杠可以不使用转义符),元字符不能使用'^',否则报错<br>";
    15. echo "preg_match('^http://[a-z]+.[a-z]{2,6}/#^',$url,$match);的输出结果为:<br>";
    16. echo $match[0]."<hr>";
    17. //使用反斜杠'[]'作为分隔符(反斜杠可以不使用转义符)
    18. preg_match('[^http://[a-z]+.[a-z]{2,6}/#]',$url,$match);
    19. echo "//使用反斜杠'[]'作为分隔符(反斜杠可以不使用转义符)<br>";
    20. echo "preg_match('[^http://[a-z]+.[a-z]{2,6}/#]',$url,$match);的输出结果为:<br>";
    21. echo $match[0]."<hr>";

    输出结果:

    1. //使用反斜杠'/'作为分隔符
    2. preg_match('/^http://[a-z]+.[a-z]{2,6}/#/',http://baiwar.com/#,$match);的输出结果为:
    3. http://baiwar.com/#
    4. //使用反斜杠'#'作为分隔符(反斜杠可以不使用转义符,但其中的'#'需要使用转义符)
    5. preg_match('#^http://[a-z]+.[a-z]{2,6}/##',http://baiwar.com/#,$match);的输出结果为:
    6. http://baiwar.com/#
    7. //使用反斜杠'^'作为分隔符(反斜杠可以不使用转义符),元字符不能使用'^',否则报错
    8. preg_match('^http://[a-z]+.[a-z]{2,6}/#^',http://baiwar.com/#,$match);的输出结果为:
    9. http://baiwar.com/#
    10. //使用反斜杠'[]'作为分隔符(反斜杠可以不使用转义符)
    11. preg_match('[^http://[a-z]+.[a-z]{2,6}/#]',http://baiwar.com/#,$match);的输出结果为:
    12. http://baiwar.com/#
  • 相关阅读:
    css之隐藏内容的方法
    字符串对象的各种方法
    javascript之自增自减典型运算(易错)
    Fuel 30 分钟快速安装OpenStack
    使用Sublime Text 3做Python开发
    Ubuntu 14.04.02 安装openvswitch-2.3.1
    linux 技巧:使用 screen 管理你的远程会话
    MQTT的学习研究(十七)Mosquitto简要教程(安装&使用)
    MQTT的学习研究(十六) MQTT的Mosquitto的window安装部署
    MQTT的学习研究(十五) MQTT 和android整合文章
  • 原文地址:https://www.cnblogs.com/swing07/p/5357359.html
Copyright © 2011-2022 走看看