• 正则表达式


    正则表达式

    英文为Regular expression,简称:regexregexp
    含义:按照某种规则去匹配符合条件的字符串

    正则表达式由两种基本字符类型构成:

    • 原义文本字符
    • 元字符

    元字符是在正则表达式中有特殊含义的非字母字符:* + ? ^ $ . | () {} []

    常用字符集
    :水平制表符
    v:垂直制表符
    :换行符
    :回车符
    :空字符
    f:换页符
    |:或

    字符类
    由元字符[]创建。字符类取反:由^创建,反向类,[^123]表示不是字符123的内容

    范围类
    [a-z]:来连接两个字符表示从az的任意字符

    预定义类
    .[^ ],除了回车符和换行符之外的所有字符
    d[0-9],数字字符
    D[^0-9],非数字字符
    s[ x0Bf ],空白符
    S[^ x0Bf ],非空白符
    w[a-zA-Z0-9_],单词字符(字母、数字、下划线)
    W[^a-zA-Z0-9_],非单词字符

    边界
    ^:开始标记,以xx开始
    $:结束标记,以xx结束
    :单词边界
    B:非单词边界

    量词
    ?:出现0次或1
    +:出现1次或多个
    *:出现0次或多次(任意次)
    {n}:出现n
    {n,}:出现n次或n次以上,当n0时等价于*n1时等价于+
    {n,m}:出现n次到m次,当n0m1时等价于?

    贪婪模式和非贪婪模式
    正则表达式默认是贪婪模式,当使用量词进行匹配时,会尽可能匹配多的。

    非贪婪模式:让正则表达式尽可能少的匹配,也就是说一旦成功匹配不再继续尝试。
    在量词后面加上?即可

    '123456789'.match(/d{3,5}?/g)
    
    result:{'123', '456', '789'}
    

    分组()
    忽略分组:(?: Byron).(ok)

    前瞻后顾
    正向前瞻:exp(?=assert)
    负向前瞻:exp(?!assert)
    正向后顾:exp(?<=assert)
    负向后顾:exp(?<!assert)

    对象属性

    • global:是否全文搜索,默认false
    • ignore case:是否大小写敏感,默认false
    • multiline:多行搜索,默认值是false
    • lastindex:是当前表达式匹配内容的最后一个字符的下一个位置
    • source:正则表达式的文本字符串
  • 相关阅读:
    深入理解Java内存模型(JMM)
    Java基础知识①
    Java自旋锁的几种实现
    ConcurrentHashMap的CAS操作
    Java集合对比总结
    python模块--os模块
    python模块--random
    Datafactory 学习笔记
    Datafactory 实际使用案例
    Oracle三种排名函数使用
  • 原文地址:https://www.cnblogs.com/jackw1/p/12582627.html
Copyright © 2020-2023  润新知