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

    正则表达式

    创建方法

    JavaScript的正则表达式有两种创建方式。两者用法一致

    1, new RegExp(/123456789/)
    2, /123456789/
    

    修饰符 i,m,g

    • i: 部分大小写
    • m: 支持换行搜索
    • g: 搜索全局匹配的内容

    位置: 表达式最后。
    例子:/123/g // 全局搜索内容为12的内容

    三种括号 ( )、[ ]、{ }

    • ( ): 使正则结构更加清晰、组成子表达式,替换时进行引用。
    • [ ]: 可选内容。可选定区域[0-9]、[A-Fa-z]
    • { }: 重复次数。

    例子:

    var reg = /(12)(ab)/g  // 搜索数字为 `12` 且 字母为 `ab` 的字符串 (结构清晰)
       '12ab123ab'.replace(reg, "$2$1") // 结果为:ab12123ab  (子表达式引用)
    
    /a=[12]/g  // 匹配 `a=1` 或者 `a=2` 的内容
    
    /a{3}/g   // 匹配3个a
    /a{1,}/   // 匹配1个及以上的a
    /a{1,3}/  // 匹配1个及以上, 3个及以下的a
    

    重复匹配

    重复匹配的字符是特指该字符左边仅靠的内容。

    • ? : 匹配0个或1个字符
    • * : 匹配0个或多个字符
    • + : 匹配1个或多个字符

    例子:

    /https?/   // 可匹配`http`或者`https`
    /ab*/      // 可匹配`a`或者`ab...`
    /ab+/      // 可匹配 `ab...`
    

    重复匹配为贪婪型匹配,也就是尽可能多的匹配。
    例如:用 /ab+/ 匹配字符串"abbbbbbbbbbbb" // 会全部进行匹配,若只需要ab则需要开启懒惰型匹配。

    贪婪型 懒惰型
    * *?
    + +?

    使用 /ab+?/ 匹配"abcdbbbbb",结果为:ab

    特殊字符

    名称 作用
    \w 匹配字母和数字 等同于[0-9a-zA-Z]
    \W 匹配非字母和数字 等同于[^0-9a-zA-Z]
    \d 匹配数字 等同于[0-9]
    \D 匹配非数字 等同于[^0-9]
    \s 匹配空格、换行、退格... 等同于[\b\r\n] (未举例完)
    \S 匹配非空格字符 等同于[^\b\r\n] (未举例完)

    其他

    • ^ : 匹配字符开头,在[]中,放在第一个位置表示求非作用
    • $ : 匹配字符结尾
    • . : 匹配任意字符,在[]中,可直接写 [.]
    • (?=): 断言。断取字符,且不包含该字符。

    例子:/.*(?=:)/g 匹配"https://www.baidu.com", 匹配结果为: https

    JS中有关正则的用法

    • RegExp中:
      • /abc/.test(str) // str中有abc内容匹配返回true, 否则为false
      • /abc/.match(str) // str中匹配abc内容,有匹配内容则返回一个数组。若无,返回null
    • String中:
      • str.search(/abc/) // 返回匹配到的位置。找不到返回-1
      • str.replace(/abc/g, "cba") // 查找内容进行替换
      • str.match(/abc/g) // 返回一个数组,与g连用。若匹配内容为空,返回null
      • str.split(/abc/) // 以abc为分隔符,返回一个数组
  • 相关阅读:
    关于svn的安装配置开启服务过程和 eclipse安装SVN插件的方法
    java mail 接受QQ邮箱未读的邮件
    java 通过QQ账号发送邮件
    转:现实生活中怎么倒车入库
    转:现实中倒库怎么找点,现实生活倒车入库技巧图解
    转:Myeclipse——格式化代码块快捷键
    转:Excel快速输入的技巧 有哪些
    Excel 如何填充自增顺序号,自增1或者2或者n
    Excel的vlookup函数 秒速配两表数据
    Excel如何使用数据有效性
  • 原文地址:https://www.cnblogs.com/miku561/p/10785655.html
Copyright © 2011-2022 走看看