zoukankan      html  css  js  c++  java
  • 正则表达式

    分组和引用

    使用小括号()将字符作为一个最小单元,同时小括号还能记忆这个组合相匹配的字符串,再使用反斜杠引用前面分组的表达式,数字1表示第一个小括号。这时就可以实现前面组合的重复;

    小括号组成分组,分组可以嵌套;

    引用是以分组为前提的,应用的就是分组,分组可以嵌套,分组的顺序取决于分组符号的左侧部分的顺序。

    (?:pattern)匹配pattern但不获取匹配结果,也就是这是一个非获取匹配

    (pattern),匹配pattern同时获取匹配结果,这是一个获取匹配,可以供后面使用

    正向肯定(否定)预查 反向肯定(否定)预查

    正向肯定预查 (?=pattern) 在任何匹配pattern的地方开始匹配查找字符串,例如我想匹配Windows后面加数字,但是我只要Windows

    var pattern=/Windows (?=d+)/ 可以匹配Windows 2000中的Windows,(匹配字符串Windows 2000,但是只获取pattern之前的字符串Windows,不获取pattern2000 )不能匹配Windows XP中的Windows

    正向否定预查(?!pattern),在任何不匹配pattern字符串开始处匹配查找字符串

    var pattern=/Windows (?!d+)/ 可以匹配Windows XP中的Windows 不能匹配Windows 2000中的Windows(匹配字符串Windows XP,但是只保留!pattern之前的Windows,不获取!pattern XP)

    反向肯定预查(?<=pattern) 与正向肯定预查类似,只是方向相反 ,从匹配pattern之前查找字符串

    var pattern=/(?<=d+) Windows/ 可以匹配2000 Windows中的Windows 不能匹配this is Windows中的Windows (2000 Windows,获取匹配pattern之后的字符串Windows,不保留pattern 2000)

    反向否定预查(?<!pattern) 与正向否定预查类似,只是方向相反 ,从不匹配pattern之前查找字符串

    var pattern=/(?<!d+) Windows/ 可以匹配this is Windows中的Windows 不能匹配2000 Windows 中的Windows (this is Windows,获取匹配!pattern之后的字符串Windows,不保留!pattern this is)

     创建正则表达式:

    1 var reg=new RegExp('d{2,3}','ig');

    2 var reg=/d{2,3}/ig;

    正则对象的方法:

    1 test  判断是否匹配pattern,返回true false

    2 exec 检测是否有匹配的值,有则返回一个数组,否则返回null

    字符串的方法:

    1 match 找到匹配的值,有返回一个数组,没有返回null

    let reg = /s/ig; console.log("studys".match(reg)); ///[ 's', 's' ]

    2 search 匹配是否有匹配值,返回第一个符合的子字符串的起始位置,没有返回-1

    let reg = /s/ig; console.log("studys".search(reg)); ///打印0,有两个s,只打印了第一个位置的s

    3 replace 替换正则表达式的值

    let reg = /s/ig; console.log("studys".replace(reg,"***")); /// 返回***tudy***

    demo:没有分组

     

    4 split 把字符串按pattern分割成数组

    let reg = /s/ig; console.log("goodstudysboy".split(reg)); ///[ 'good', 'tudy', 'boy' ]

     正则表达式从文本头部向尾部开始解析,文本尾部方向,称为“前”

     前瞻,就是在正则表达式匹配到规则的时候,向前检测是否符合断言,后顾/后瞻 方法相反

    前瞻reg(?=assert) 匹配reg之后还要查看是否符合断言assert,如果符合就成功,但是只取匹配的部分,断言只是判断不包含在匹配结果中

    正则表达式属性:

    source 正则表达式的文本字符串

    global 是否是全文搜索,默认false,只读

    ignoreCase:是否大小写敏感,默认false,只读

    multiline:多行搜索,默认值是false,只读

    lastIndex:是当前表达式匹配内容的最后一个字符的下一个位置(全局搜索的时候正则表达式对象,每次执行的

    结果不一样就是lastIndex的影响),所以判断是否符合时test方法不要加g,如果需要知道具体的信息可以是用exec方法)

    理解(正向|反向)(肯定|否定)预查可以参考:https://www.jb51.net/article/166953.htm  

    https://blog.csdn.net/qq_34763438/article/details/77856204

  • 相关阅读:
    [转]如何烧录tizen镜像文件?(图文教程)
    [转]如何制作tizen镜像文件(图文教程)?
    [转]如何下载tizen源码(图文教程)?
    [转]如何编译tizen源码(图文教程)?
    uclibc,eglibc,glibc之间的区别和联系
    Create a Bootable MicroSD Card
    [Tizen]Creating a Tizen Platform Image from Scratch through Local Build
    OpenSSL加解密
    [20个项目学会BBC micro:bit编程] 11-模拟舵机控制实验
    【BBC micro:bit基础教程】10-micro:bit操作电位计(滑动变阻器)
  • 原文地址:https://www.cnblogs.com/xiaofenguo/p/12177089.html
Copyright © 2011-2022 走看看