• JavaScript正则表达式函数总结


    /* 测试环境:Chrome 63.0.3239.132 */

    JS中正则对象修饰符可选值为:"i" "g" "m",即忽略大小写 进行全局匹配 多行模式

    JS中正则表达式支持的元字符:
    1:枚举方括号表达式,范围方括号表达式,枚举取反方括号表达式,范围取反方括号表达式
    2:. w W d D s S  B f v 888 uffff xff
    3:n? n+ n* n{a} n{a,} n{a,b}及这些量词的非贪心模式
    4:^ $ (?!) (?=) (?:)
    5: |

    其他:
    1:JS中引用分组请用 umber,且不支持''和<>这样的命名分组
    2:不支持量词的占有模式
    3:不支持逆向环视
    4:方括号表达式中复合表达式仅支持如下:
    [abc0-9] [abcd] [dw^&]等等类似的
    5:支持修饰符组合,比如gim mig gi ig等等,无顺序要求

    JS正则对象属性:
    global:该对象是否开启全局匹配,一个布尔值
    ignoreCase:该对象是否开启忽略大小写,一个布尔值
    multiline:该对象是否开启多行模式,一个布尔值
    lastIndex:该对象下一次开始匹配的位置,即上一次匹配结束的位置,一个正整数
    source:正则表达式的源文本,即/regexp/flag的regexp,不包含修饰符,一个字符串

    创建正则表达式:
    1:myreg = new RegExp(patternString[,globalFlags]);
    2:myreg = /yourRegexp/globalFlags;

    JS中正则表达式常用方法:
    在RegExp对象中:
    1:test(yourString);
    定义:检测一个字符串是否匹配某个模式。
    其他说明:该方法将忽略"g"标志,只要查找到符合模式的字符串即匹配成功。(如果正则对象含有"g"标志,那么每次使用test()将从lastIndex位置开始匹配,匹配成功会更新lastIndex属性值;没有"g"标志,test()将从字符串起点开始匹配,也不会对lastIndex做更新)

    2:exec(yourString);
    定义:检索字符串中的正则表达式的匹配。
    其他说明:若没开启"g"标志,从字符串起始位置开始并只查找一次,不修改正则对象的lastIndex属性,返回一个对象,包含下标0、index、input,这时属性和match等价;开启"g",从lastIndex位置开始查找,如果存在匹配将修改正则对象的lastIndex属性为这次找到的子字符串的末尾位置,返回一个同样的对象。(你可以自行修改正则对象的lastIndex属性来规定exec开始查找的位置。)

    小总结:不具有"g"标志的正则对象和String对象的正则操作不能访问和修改lastIndex属性。(如果在成功地匹配了某个字符串之后就开始检索另一个新的字符串,需要手动地把这个属性设置为0)

    在String对象中:
    1:search(yourRegexpOrString);
    定义:检索字符串中与指定的子字符串或正则表达式相匹配的子字符串。
    其他说明:该方法将忽略"g"标志和正则对象的lastIndex属性(即总是从开头找起),返回找到的第一个字符的位置,如果未找到返回-1。

    2:match(yourRegexpOrString);
    定义:在字符串内查找一个或多个与正则表达式匹配的字符串,返回一个对象。(同样忽略laseIndex属性,下面两个函数也同样)
    其他说明:若没开启"g"标志,将只查找第一个匹配的字符串,返回一个对象,包含下标0、index、input,其中下标0等价于index,input是String的引用;开启"g",返回一个数组,数组的length是匹配的字符串个数,每个元素是每个匹配的起始字符位置。

    3:replace(yourRegexpOrString,placementString);
    定义:用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
    其他说明:如果没有"g"标志只会替换一次,并且如果参数是字符串而不是正则对象始终替换一次。返回一个字符串,为用placementString替换yourRegexpOrString后的结果。placementString中$有特殊用途,见下表:

    $1、$2、...、$99 regexp中捕获的引用分组。
    $& 本次匹配的文本。
    $` 本次匹配到的子串左侧的文本。
    $' 本次匹配到的子串右侧的文本。
    $$ $本身。



    该方法的第二个参数可以为一个函数,每次匹配都会调用该函数,以函数返回值作为placement,一共传入4个参数,第一个参数为本次匹配的子文本($&);中间参数为子表达式匹配字符串,个数不限($i);倒数第二个参数为本次匹配到的子文本下标位置;最后一个参数表示执行replace方法的字符串本身。(注意的是,如果函数返回值中含有$,则它不具有上述表格中的特殊意义。)

    4:split(yourRegexpOrString[,howMany]);
    定义:把一个字符串分割成字符串值的数组。
    其他说明:是arr.join(separatorString)反操作,如果传入"",则每个字符都将会被分隔到数组。howMany指定返回数组的个数。

  • 相关阅读:
    day07 Pyhton学习
    day06 Pyhton学习
    Python数据分析【炼数成金15周完整课程】
    传智 Python基础班+就业班+课件 【最新完整无加密视频课程】
    万门大学Python零基础10天进阶班视频教程
    【Python高级工程师之路】入门+进阶+实战+爬虫+数据分析整套教程
    python入门:in 的用法(它在不在这个字符串里面)
    python入门:py2.x里面除法或乘法这么写就可以计算小数点后面结果
    python入门:简单模拟登陆时UTF-8转换成GBK编码
    python入门:UTF-8转换成GBK编码
  • 原文地址:https://www.cnblogs.com/ryzz/p/8458593.html
Copyright © 2020-2023  润新知