zoukankan      html  css  js  c++  java
  • 正则表达式

    正则表达式

    正则用来定义一些字符串的规则,程序可以根据这些规则来判断一个字符串是否符合规则
    也可以将一个字符串中符合规则的内容提取出来。

    更多请点这里(菜鸟)

    创建正则表达式

    1.构造函数来创建对象

    var reg = new RegExp("正则表达式", "匹配模式"); 
    // test()方法
    reg.test("字符串");	// 满足 true,不满足 false
    

    这种方式更加灵活,第一个参数可以传一个变量

    注意:使用构造函数时,由于它的参数是一个字符串,而 是字符串中转义字符,如果要使用 则需要使用 来代替

    2.字面量创建

    var reg = /正则表达式/匹配模式;	// 这里正则不加 "",因为是字面量,也不能加变量
    // 匹配模式可以多个一起写:/ig
    
    let reg = /ab/	// 包含有"ab"
    

    这种方式虽然简单,但会把正则写死,不灵活

    语法:

    匹配模式(修饰符):

    • i 忽略大小写(ignore)
    • g 全局匹配模式(默认为匹配1次)

    设置匹配模式时,可以都不设置,也可以设置1个,也可以全设置,设置时没有顺序要求

    表达式

    • | 或
    • [] 或
    • [^ ] 除了
    表达式 描述
    [abc..] 查找方括号内的任意一个字符
    [^abc..] 查找不包括方括号内的任何字符
    [a-z] 查找小写字母
    [A-Z] 查找大写字母
    [A-z] 任意字母,但是还包括了其他ASCII在此之中的
    相当于/[a-z]/i
    [0-9] 任意数字
    [x-y] x的 ascii码到 y的 ascii码之间的值
    () 结合成一组

    元字符

    在正则表达式中使用 作为转义字符,若要找 则用 \

    元字符 描述
    . 表示任意一个字符
    若要查找 . 本身,则用 .
    若是在构造函数里,则用 . ,而 . 则表示 元字符 . ,因为构造函数里本身传的是字符串
    w 任意字母、数字和 _ ,[A-z0-9_]
    W 除了字母、数字和 _ ,[^A-z0-9_]
    d 任意的数字,[0-9]
    D 除了数字,[ ^0-9]
    s 空格
    S 除了空格
     单词边界
    例如:/child/,在“children” 是true,而 /child/,是false
    B 除了单词边界

    量词

    通过量词可以设置一个内容出现的次数
    量词只对它前边的一个内容起作用

    量词 描述
    {n} 正好出现n次
    {m,n} 出现m 到 n次
    {m,} m次以上
    n+ 至少有一个n,相当于 n{1,}
    n* 0个或 多个n,相当于 n{0,}
    n? 0个或 1个n,相当于 n{0,1}
    ^n 以n 开头
    n$ 以n 结尾

    注意:如果在正则表达式中同时使用了 ^ $ 则要求字符串必须完全符合正则

    //要求以a开头 或者 以a结尾
    let reg = /^a|a$/;
    let reg = /[^a$]/;
    
    // 要求以a开头 并且 以a结尾
    let reg = /^a.*a$/;
    
    //只去掉两端的空格
    let s = "     f    afa    ";
    let reg = /^s*|s*$/g;	// 相当于 /(^s*)|(s*$)/g
    s = s.replace(reg, "");
    // 也可以使用 s.trim() 去掉两端空格 方法
    

    方法:

    方法名 描述
    test() 可以用来检查一个字符串是否符合正则表达式
    如果符合返回true,否则返回false
    exec 检索字符串中指定的值。有,则返回该匹配的值,并确定其位置;没有,则返回 null
  • 相关阅读:
    LeetCode 811. Subdomain Visit Count (子域名访问计数)
    LeetCode 884. Uncommon Words from Two Sentences (两句话中的不常见单词)
    LeetCode 939. Minimum Area Rectangle (最小面积矩形)
    LeetCode 781. Rabbits in Forest (森林中的兔子)
    LeetCode 739. Daily Temperatures (每日温度)
    三种方式实现按钮的点击事件
    239. Sliding Window Maximum
    14.TCP的坚持定时器和保活定时器
    13.TCP的超时与重传
    12.TCP的成块数据流
  • 原文地址:https://www.cnblogs.com/Liwker/p/14372415.html
Copyright © 2011-2022 走看看