zoukankan      html  css  js  c++  java
  • 瞬间变正则大牛

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

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

    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)对字符串进行分隔

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

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

  • 相关阅读:
    vim复制
    嵌入式Linux学习(二)
    (Java实现) 洛谷 P1042 乒乓球
    (Java实现) 洛谷 P1042 乒乓球
    (Java实现) 洛谷 P1071 潜伏者
    (Java实现) 洛谷 P1071 潜伏者
    (Java实现) 洛谷 P1025 数的划分
    (Java实现)洛谷 P1093 奖学金
    (Java实现)洛谷 P1093 奖学金
    Java实现 洛谷 P1064 金明的预算方案
  • 原文地址:https://www.cnblogs.com/ihqn19/p/3416733.html
Copyright © 2011-2022 走看看