zoukankan      html  css  js  c++  java
  • 正则表达式——火星文

    之前在学习到正则表达式的时候,真的看了两秒直接就跳过了,真的看到都怕,来自地球的我表示真的看不懂这个传说中的火星文,但是,要想学习到更多的知识,我深知逃避是解决不了问题的,于是我硬着头皮尝试的去理解它,今天简单记录下来,以供以后来鄙视

    正则表达是其实就是规则表达式,就是我们要找的条件翻译成计算机能读懂的语言

    创建正则对象有两种方式:

    js风格——new RegExp("a","i");   

    perl风格——/a/i;      

    语法与释义:
      基础语法 "^([]{})([]{})([]{})$"
      正则字符串 = "开始([包含内容]{长度})([包含内容]{长度})([包含内容]{长度})结束"

    匹配邮箱的例子

    //邮箱规则拆分:开始一串数字、字母、下划线@一串数字、英文.一串英文(最少2,最多4)结束
    
    var re=/^w+@[a-z0-9]+.[a-z]{2,4}$/g;

    其中g代表全局匹配,i代表不区分大小写;

    常用运算符与表达式:
      ^ 开始
      () 域段
      [] 包含,默认是一个字符长度
      [^] 不包含,默认是一个字符长度
      {n,m} 匹配长度 
      . 任何单个字符(. 字符点)
      | 或
       转义
      $ 结尾
      [A-Z] 26个大写字母
      [a-z] 26个小写字母
      [0-9] 0至9数字
    [A-Za-z0-9] 26个大写字母、26个小写字母和0至9数字
      , 分割

    去掉首尾空格例子:--考察开头和结束字符使用

    var re=/^s+|s$/g;

    匹配是否存在中文:

    var re=/[u4e00-u9fa5]/;

    理解常用的正则表达式:

    [abc] a或者b或者c

    等价:
    等价是等同于的意思,表示同样的功能,用不同符号来书写。
    {n,m}表示范围,至少出现n次,最多m次
    ?,*,+,d,w 都是等价字符
    量词:
      ?等价于匹配长度{0,1}    //零次或1次
      *等价于匹配长度{0,}     //任意次
      +等价于匹配长度{1,}    //一次或任意次
     
     
      d等价于[0-9]  
      D等价于[^0-9]
      w等价于[A-Za-z_0-9]
      W等价于[^A-Za-z_0-9]
      
      匹配一个单词边界,也就是指单词和空格间的位置(即正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的就是匹配位置的)。例如,“er”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”
      B匹配非单词边界。“erB”能匹配“verb”中的“er”,但不能匹配“never”中的“er”
     
    运用正则,写完美版getByClass()
    function getByClass(oParent,aClass){
                    var aEle=oParent.getElementsByTagName('*');
                    var aResult=[];
                    var re=new RegExp('\b'+sClass+'\b','i');
                    
                    for(var i=0;i<aEle.length;i++){
                        if(re.test(aEle[i].className)){
                            aResult.push(aEle[i]);
                        }
                    }
                    return aResult;
                }

      

  • 相关阅读:
    vim可以打开,gvim无法打开
    Ubuntu用apt-get安装时依赖包无法安装
    如何用mm、mmm编译android中的模块
    装饰模式简单的代码
    FileWriter和FileReader简单使用
    TCP/IP、Http、Socket的区别--特别仔细
    surface实例-小球弹起事例
    android中图片的三级缓存cache策略(内存/文件/网络)
    接口回调
    大公司的Java面试题集
  • 原文地址:https://www.cnblogs.com/feilu2016/p/6867831.html
Copyright © 2011-2022 走看看