• 正则表达式 重新认识


    正则表达式

    含义:正则表达式用于匹配字符串中字符组合的模式。

    value = value.replace(/d(d{3})(?=(,|$))/, "$1");
    

    (?=(,|$)) 的含义

    贪婪模式,在量词后面加问号,就是尽可能少地匹配。
    ?如果紧跟在任何量词 *、 +、? 或 {} 的后面,将会使量词变为非贪婪的(匹配尽量少的字符),和缺省使用的贪婪模式(匹配尽可能多的字符)正好相反。

    简单模式 与特殊字符

    • 简单模式

    简单模式: 是由你找到的直接匹配所构成的。比如,/abc/这个模式就匹配了在一个字符串中,仅仅字符abc同时出现并按照这个顺序。
    项目中的例子:去掉货币格式的字符串,去掉。

    // 待处理字符串
    let price = '123,456,7';
    // 处理
    price.replace(/,/g,'');
    
    • 使用特殊字符(元字符等)

    特殊字符: 当你需要搜索一个比直接匹配需要更多条件的匹配时候,比如寻找一个或者多个b,或者寻找空格,那么这时模式将要包含特殊字符。比如,模式/ab*c/匹配了一个单独的'a'后面跟了0个或者多个'b',且后面跟着'c'的任意字符。

    正则表达式中的特殊字符


    反斜杠

    在非特殊字符之前的反斜杠表示下一个字符是特殊的,不能从字面上解释。例如,没有前面的''的'b'通常匹配小写'b',无论它们出现在哪里。如果加了''这个字符变成了一个特殊意义的字符,意思是匹配一个字符边界。

    反斜杠也可以将气候的特殊字符,转义为字面量。例如,模式/a*/代表会匹配0个或者多个a,相反,模式/a*/将 *的特殊性移除,从而可以匹配像'a'这样的字符串。

    ^ $

    约束字符的开始与结束

    量词的应用

      • 匹配前一个表达式0次或多次。等价于{0,}
      • 匹配当前一个表达式1次或者多长。等价{1,}
    • ? 匹配前面一个表达式0次或者1次,等价{0,1}
      ?的特殊使用,如果紧跟在任何量词*、+、?、{}的后面,将会使量词变为非贪婪模的,即匹配经可能少的字符,和缺省使用的贪婪模式(尽可能多的字符)正好相反。

    特殊使用

    (x)分组。匹配'x'且记住匹配项,括号被成为捕获括号,就是对分组的引用,不同的说法。

    (?:x)匹配但是不记住匹配项目。

    lookahead && negative lookahead
    ”先行断言“指的是,x只有在y前面才匹配,必须写成/x(?=y)/。比如,只匹配百分号之前的数字,要写成/d+(?=%)/。”先行否定断言“指的是,x只有不在y前面才匹配,必须写成/x(?!y)/。比如,只匹配不在百分号之前的数字,要写成/d+(?!%)/。
    x(?=y)匹配x仅仅当后面跟着y.这种叫做正向肯定查找,y都不是匹配结果的一部分。
    x(?!y)匹配x仅仅当x后面不跟着x,这种叫做正向否定查找。

    lookbehind && negative lookbehind(提案阶段,阮一峰es6教程已更新)
    “后行断言”正好与“先行断言”相反,x只有在y后面才匹配,必须写成/(?<=y)x/。比如,只匹配美元符号之后的数字,要写成/(?<=$)d+/。”后行否定断言“则与”先行否定断言“相反,x只有不在y后面才匹配,必须写成/(?<!y)x/。比如,只匹配不在美元符号后面的数字,要写成/(?<!$)d+/。

    var f = '99999999999'.replace(/d{1,3}(?=(d{3})+$)/g, '$&,');
    var f = '99999999999.02'.replace(/d{1,3}(?=(d{3})+(?:.d{1,2})?$)/g, '$&,');
    
  • 相关阅读:
    渗透利器-kali工具 (第二章-4) 信息收集之目录扫描
    渗透利器-kali工具 (第二章-3) 信息收集之子域名扫描 -Sublist3
    渗透利器-kali工具 (第二章-2) 信息收集之端口扫描-NMAP
    渗透利器-kali工具 (第二章-1) 渗透测试流程以及信息收集总纲
    (4)top详解 (每周一个linux命令系列)
    (3)lscpu详解 (每周一个linux命令系列)
    (2)free详解 (每周一个linux命令系列)
    每周一个linux命令之---uptime详解
    使用python制作时间戳转换工具
    PSR规范0-4整理
  • 原文地址:https://www.cnblogs.com/lakeInHeart/p/7890518.html
Copyright © 2020-2023  润新知