• 正则表达式


    正则表达式是一种描述字符串匹配的模式,用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

    元字符:

    常用元字符 含义
    . 匹配除换行符意外的任意字符
    w 匹配字母、数字、下划线
    W 匹配不是字母、不是数字、不是下划线
    d 匹配数字相当于[0-9]
    D 匹配不是数字的字符
    s 匹配不可见字符,包括空格,换行符等
    匹配可见字符
     匹配一个词的边界 
    匹配一个非单词边界
    字符串的开始位置
    字符串的结束位置 

    表示一个字符全集:/wW/、/dD/、/sS/、/./s 等 

    量词:

    量词 含义
    * 重复任意次数,相当于{0,}
    ? 重复 0 或 1 次,相当于{0,1}
    + 重复 1 次或更多次,相当于{1,}
    {n} 重复 n 次
    {n,} 重复 n 次或大于 n 次
    {n,m} 重复 n 到 m 次

    分支&字符集

    1. (a|b|c)
    2. [abc] == [a-c]
    3. [^abc] == [^a-c]

    分组&引用

    /(d{4})-(d{2})-(d{2})/

    /(d{4})-(d{2})-2/--------------------2相当于(d{2})

    /(?<year>d{4})-(?<month>d{2})-(?<day>d{2})/ ------------分组命名,group.year,group.month,group.day

    /(?<year>d{4})-(?<month>d{2})-k<month>/-----------------k<>,命名向后引用

     环视

      正向/预测先行/顺序/从左到右/pattern的前面位置 负向/回顾后发/逆序/从右到左/pattern的后面位置
    肯定/正 (?=pattern) (?<=pattern)
    否定/负 (?!pattern) (?<!pattern)

    贪婪&惰性

    贪婪——在匹配成功的前提下,尽可能多的匹配

    惰性——在匹配成功的前提下,尽可能少的匹配

    /.*bbb/g.test('abbbaabbba1234')

    /.*?bbb/g.test('abbbaabbba1234')

    修饰符&标志

    g(表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止)

    i(不区分大小写)

    m(多行模式)

    y(y 修饰符的作用与 g 修饰符类似,也是全局匹配,后一次匹配都从上一次匹配成功的下一个位置开始。不同之处在于,g 修饰符只要剩余位置中存在匹配就可,而 y 修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的含义)

    u(表示按unicode(utf-8)匹配,主要针对多字节比如汉字)

  • 相关阅读:
    NOIp2018集训test-9-23
    NOIp2018集训test-9-22(am/pm) (联考三day1/day2)
    NOIp2018集训test-9-21(am/pm)
    NOIp2018集训test-9-19(am&pm)
    day41.txt
    day40表关系
    day39
    day38数据库
    day37
    day36
  • 原文地址:https://www.cnblogs.com/Dida-1209/p/10693447.html
Copyright © 2020-2023  润新知