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
  • 相关阅读:
    漫谈AOP开发之初探AOP及AspectJ的用法
    Spring AOP那些学术概念—通知、增强处理连接点(JoinPoint)切面(Aspect)
    深入理解Java虚拟机:OutOfMemory实战
    Java内存泄漏分析与解决方案
    漂亮回答面试官struts2的原理
    [小知识]不显示没有内容的UITableViewCell
    initWithCoder: 与initWithFrame:
    pageControl设置不居中显示,居左或居右
    Xcode中报错或警告信息整理,持续更新...
    [小技巧]阀值的使用
  • 原文地址:https://www.cnblogs.com/Liwker/p/14372415.html
Copyright © 2011-2022 走看看