2018-02-07 技术笔记

正则表达式(Regular Expression)

  • 字符 \
  1. 在非特殊字符前的 \ 表示的是下一个字符是特殊的。例如: \b 表示匹配一个字符的边界,而不是匹配字符b。
  2. 可以将其特殊字符转义为字面量。例如:模式/a/ 表示匹配0个或多个a;模式/a*/ 匹配a这样的字符。
  3. 不要忘记对 \ 字符串的转义,\ 本身也是一个转义字符串。
  • 字符 ^
    匹配输入的开始,如果多行标志被设置为true,那么也匹配换行符后紧跟的位置。例如,/^A/ 只匹配"Abcddd" 不匹配 "an A" 。
  • 字符 $
    匹配输入的结束,如果多行标志被设置为true,那么也匹配换行符前的位置。
    例如:/t$/ 会匹配 ‘eat’ 而不会匹配 'eater'
  • 字符 *
    匹配一个表达式0次或多次,等价于{0,}
    例如:/bo*/ 会匹配 A glot boooooot 中的boooooo 或者 bird 中得 b
  • 字符 +
    匹配前面一个表达式1次或多次,等价于{1,}
    例如:/a+/ 匹配 an 中得a 或者 aaaaaaaaaa 中的 aaaaaaaaaa。
  • 字符 ?
    匹配前面一个表达式0次或1次,等价于{0,1}
    例如:/e?le?/ 匹配 "angel" 中的 'el',和 "angle" 中的 'le' 以及"oslo' 中的'l'。
    如果紧跟在任何量词 *、 +、? 或 {} 的后面,将会使量词变为非贪婪的(匹配尽量少的字符),和缺省使用的贪婪模式(匹配尽可能多的字符)正好相反。

例如,对 "123abc" 应用 /\d+/ 将会返回 "123",如果使用 /\d+?/,那么就只会匹配到 "1"。

还可以运用于先行断言,如本表的 x(?=y) 和 x(?!y) 条目中所述。

  • 字符 .
    匹配除换行符里的任意单个字符
    例如:/.n/ 匹配"nay, an apple is on the tree" 中的 'an' 和 'on',但是不会匹配 'nay'。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 9,816评论 1 44
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,767评论 19 139
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,699评论 0 13
  • 这几年“朝圣”几乎成为一种潮流。人们不远万里,裹着大棉袄,顶着风霜,登上雪山,以为跪拜、匍伏,就能借助神山之力洗净...
    物道阅读 4,447评论 2 10
  • 九九重阳登高望,草黄叶红金菊香。 天高云淡心怡然,鸣雁南飞撩人伤 。 菊糕甜里父母恩,恩重如山永不忘。 萸酒香中是...
    欣荣Y阅读 2,755评论 2 18