zoukankan      html  css  js  c++  java
  • 匹配url的正则表达式

    在javascript语言精粹 看到url的正则,将其记录下来

    var parse_url = /^(?:([A-Za-z]+):)?(/{0,3})([0-9.-A-Za-z]+)(?::(d+))?(?:/([^?#]*))?(?:?([^#]*))?(?:#(.*))?$/;

    var url = "http://www.ora.com:80/goodparts?q#fragment";

    执行 具体代码见下述:

    var url = "http://www.ora.com:80/goodparts?q#fragment";
    var parse_url = /^(?:([A-Za-z]+):)?(/{0,3})([0-9.-A-Za-z]+)(?::(d+))?(?:/([^?#]*))?(?:?([^#]*))?(?:#(.*))?$/;
    var result = parse_url.exec(url);
    var names = ['url','scheme','slash','host','port','path','query','hash'];
    var blanks = ' ';
    var i;
    for (i = 0; i < names.length; i += 1){
      document.writeln(names[i] + ':' + blanks.substring(names[i].length), result[i]);
    }

    执行结果:

    url: http://www.ora.com:80/goodparts?q#fragment
    scheme: http
    slash: //
    host: www.ora.com
    port: 80
    path: goodparts
    query: q
    hash: fragment

    关于上述url的正则的部分解释:

     /^(?:([A-Za-z]+):)?(/{0,3})([0-9.-A-Za-z]+)(?::(d+))?(?:/([^?#]*))?(?:?([^#]*))?(?:#(.*))?$/

    1.^表示开始   $表示结尾

     /^(?:([A-Za-z]+):)?(/{0,3})([0-9.-A-Za-z]+)(?::(d+))?(?:/([^?#]*))?(?:?([^#]*))?(?:#(.*))?$/

    2. (?:pattern) 表示匹配pattern但不获取匹配结果

       (?:([A-Za-z]+):) 则表示匹配 ([A-Za-z]+): ,但只返回匹配到的([A-Za-z]+)的结果,并不返回:

     /^(?:([A-Za-z]+):)?(/{0,3})([0-9.-A-Za-z]+)(?::(d+))?(?:/([^?#]*))?(?:?([^#]*))?(?:#(.*))?$/

    3. *{3},因为*是特殊字符,所以用转义字符,该表达式表示匹配3个*,即***

       同理/{0,3}表示匹配0到3个/,即没有/或者/, //, ///

     /^(?:([A-Za-z]+):)?(/{0,3})([0-9.-A-Za-z]+)(?::(d+))?(?:/([^?#]*))?(?:?([^#]*))?(?:#(.*))?$/

    4. 方括号中的^表示 非 的意思

      [^?#] 则表示 非 ? 且 非 # 的其他字符

     /^(?:([A-Za-z]+):)?(/{0,3})([0-9.-A-Za-z]+)(?::(d+))?(?:/([^?#]*))?(?:?([^#]*))?(?:#(.*))?$/

    * 匹配前一项0次或多次。即{0,}

    ?匹配前一项0次或1次。即{0,1}

  • 相关阅读:
    GitLab 介绍
    git 标签
    git 分支
    git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog
    git 仓库 回退功能 git checkout
    python 并发编程 多进程 练习题
    git 命令 查看历史提交 git log
    git 命令 git diff 查看 Git 区域文件的具体改动
    POJ 2608
    POJ 2610
  • 原文地址:https://www.cnblogs.com/xnn1993/p/7606189.html
Copyright © 2011-2022 走看看