zoukankan      html  css  js  c++  java
  • javascript正则式

    正则表达式分组有4种:

    先给个例子:

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

    var url = 'http://piao.qunar.com:80/index.html?keyword=abc#city=beijing';

    执行parse_url.exec(url)得到

    ["http://piao.qunar.com:80/index.html?keyword=abc#city=beijing", "http", "//", "piao.qunar.com", "80", "index.html", "keyword=abc", "city=beijing"]。

    一、捕获型

      一个捕获型分组是一个被包围在括号中的正则表达式选择如上面的([0-9.-A-Za-z]+)。任何匹配这个分组的字符将被捕获。每个捕获型分组都被指定一个数字。在正则表达式中第一个捕获的是分组1,第二个捕获的是分组2。

    二、非捕获型

      非捕获型分组有一个(?:前缀。非捕获型分组仅作简单的匹配,并不会捕获所匹配文本。这会有微弱的性能优势。非捕获型分组不会干扰捕获型分组的编号。如上面的(?:([A-Za-z]+):)。

    三、向前正向匹配

      向前正向匹配有一个(?=前缀。它类似于非捕获型分组,但在这个匹配之后,文本将倒回到他开始匹配的地方。

    四、向前负向匹配

      向前负向匹配分组有一个(?!前缀。他类似于向前匹配,但只有他匹配失败时他才进行匹配。

    三和四,实际上都不匹配任何东西它们只是作为判断而已。

    详细信息请看《javascript语言精粹》第七章。

  • 相关阅读:
    def __unicode__(self): 或 def __str__(self):
    通过ORM创建数据库链接
    单表查询的API介绍
    数据库的查看以及建立数据库
    基础数据类型
    表单及数据库
    flag标志位
    Console面板小技巧:
    angular入门试水-基本指令理解
    构造方法
  • 原文地址:https://www.cnblogs.com/adullboy/p/3139078.html
Copyright © 2011-2022 走看看