• 瞬间变正则大牛


    以后决定每周日给自己一个写文章的承诺,这样即可总结又能记录。

    收集了一下书本内容,写一个正则基础。

    1.正则表达式中的特殊字符

        在字面意义和特殊意义之间进行切换 ,例如w表示w的特殊意义时(即正则意义),而不是字面值w,但是$表示使用$的正则意义,而是$字符本身
    ^    字符串开头。
    $    字符串结尾
    *    0次或者多次
    +    1次或者多次
    ?    0次或者一次
    .    除换行 符外的任何字符
       单词边界
    B   非单词边界
    d   0~9的任何数字[0-9]相同
    D   非数字
    f   换页符
    
       换行符
    
       回车符
    s   任何一个空白字符(与[f
    
    	v]相同)
    S   任何一个非空白字符
    	   制表符
    v   垂直制表符
    w   任何字母,数字以及下划线(与[a-zA-Z_]相同)
    W   除数字,字母下划线的其它字符
    xnn     16进制数字nn定义的ASCⅡ
    onn     8进制数字nn定义的ASCⅡ
    cX      控制字符X
    [abcd]   与其中任何字符匹配的字符集
    [^abcd]  字体补集,与其中任何字符都不匹配的字符集
    [a-e]    与其中的字符范围匹配的字符集
    []     退格字符的字面意义(不同于)
    {n}      前面的字符正好出现n次
    {n,}     前面的字符至少出现n次
    {n,m}    前面 的字符出现 n~m次
    ()       一个捕获组,可以在后面引用它$1,$2。一个捕获型分组会复制它所匹配的文本,把其放到result数组里。每个捕获分组都会被指定一个编号,第一个组编号为1,所以该分组匹配文本则是result[1].
    (?:) 一个非捕获组。
    x|y x或者y
    2 表示复制第二个捕获组如^([1-9]d*(.d{1,2})?|02)$/,表示复制一遍小数点的那一块

    2.正则表达式修饰符

    g   搜索所有的匹配(全局),不只是第一处匹配
    i   进行不区分大小写的搜索

    3. js有一个内置的RegRep对象,每当脚本执行正则表达式方法时,会自动的设置 (和重新设置)这个对象,regExp对象并不是一个包含正则表达式操作结果的变量,而是包含正则表达式所描述的模式,脚本可以通过regExp对象的属性和方法访问文本模式的各个部分。

    $1(到$9)  圆括号包围的子字符串匹配
    $_        相当于input
    $*        相当于multiline
    $& 相当于lastMatch $+ 相当于lastParen $` 相当于leftContext $' 相当于rightContext constructor 指定创建对象原型的函数 global 全局搜索 ignoreCase 不区分大小写搜索 input 如果没有传递字符串,这就是要搜索的字符串 lastIndex 继续匹配的起始位置 lastMatch 最后一个匹配的字符串 lastParen 最后的圆括号包围的子字符串匹配 leftContext 最近一个匹配字符串左边的子字符串 multiline 是否跨多行搜索字符串 prototype 允许在所有对象中添加属性 rightContext 最近一个匹配字符串右边的子字符串 source 正则表达式模式本身

    4.regExp对象的方法

    compile(pattern,[,"g"|"i"|"gi"])    对正则表达式进行编译
    exec(string)                        搜索匹配
    test(string)                        测试匹配
    toSource()                          返回一个代表对象的字面值
    toString()                          返回一个代表指定对象的字符串
    valueOf()                           返回指定对象的原始值

    5.字符串方法

    match(re)                在一个字符串中寻找与一个正则表达式模式(re)的匹配,此方法匹配出来的是一个结果数组,首先会把匹配到的结果在数组第一个元素,其次把正则里的捕获组匹配出来$1表示第一个捕获组,$2第二个捕获组,以此类推
    replace(re,replaceStr)   使用正则表达式(re)执行所需的替换
    search(re)               搜索与正则表达式(re)的匹配
    split(re)                根据正则表达式(re)对字符串进行分隔

    当然不是说,只记住这些都变大牛了,只是这些都是基础的东西,要真正驾驭它,灵活运用它,还是需要一段专研的。

    当然,我也有些饿了有些累了,下次再写些自己的东西。

  • 相关阅读:
    深度学习中一些常用函数的偏导数
    C++ 隐式类型转换与类型转换函数
    Tensorboard数据(tfevents文件)格式解析及ofstream使用问题
    记一次由unordered_map引起的bug
    softmax数值溢出 与 xent-loss问题
    C++ 单独编译(separate compilation)与 模板的编译
    TensorFlow源码分析——Tensor与Eigen
    ubuntu16.04 docker tensorflow-gpu镜像使用
    vscode Ftp-sync插件报错问题: sync error: Error: Permission denied
    PHP加速之eaccelerator
  • 原文地址:https://www.cnblogs.com/ihqn19/p/3416733.html
Copyright © 2020-2023  润新知