美文网首页
正则表达式学习笔记

正则表达式学习笔记

作者: 豆瓣奶茶 | 来源:发表于2019-03-25 21:06 被阅读0次

正则表达式学习(js)

概览

先拿数字举例

符号 含义
\d 数字
\d? 0个或1个数字
\d+ 1个或多个数字
\d* 0个或多个数字
\d{3} 3个数字
\d{3,5} 3个到5个数字

几个常用的例子

  1. 单词边界\b

    比如我们就像匹配单词is,像qishi这样的不要匹配,我们就需要\bis\b

  2. 点.表示任意字符

    如果我们就需要匹配点.,那我们就需要转义\.

  3. 匹配//

    网址中经常有//,要匹配这个,也需要转义\/\/

  4. 分组()

    分组之后,我们可以提取其中的内容

  5. 或者[]

    在匹配日期中,[-/],就可以要么匹配-,要么匹配/

  6. 开头、结尾

    ^表示以什么开始,$表示以什么结束

正则对象

创建一个正则对象

var reg = new RegExp('\\bis\\b','g')

\\,第一个是为了转义,第二个是配合后面的\b

修饰符

  • g: global 表示全文搜索
  • i: ignore case 忽略大小写。默认大小写敏感
  • m:multiple lines 多行搜索

多行匹配就是让后面的行同样适用于第一行的规则。
没加换行修饰符

image.png

第二行,第三行的都没有匹配到。

如果我们加上换行修饰符


元字符

正则表达式由两种基本字符组成,一类是原义文本字符,写什么就匹配什么,我们看到的就是要匹配的。第二类就是元字符,元字符就是在正则表达式中有特殊含义的非字母字符。


1553516159529.png

字符类

1553516410201.png

我们使用[]构造了一类字符,这一类字符中,可以是abc中的任意一个。

字符类取反

1553516535536.png

范围类

如果我们要需要一个类,包括数字从5到9,我们需要这样[5 6 7 8 9],如果数字多的话,会很麻烦
所以就需要范围类了

image.png

连写

[a-zA-Z],就把大小写都包括了。
如果我们不光包括大小写,还需要包括-
[a-zA-Z-],后面加一个-就可以了。

js预定义类和边界

上一节中,看到我们可以自定义类,这样已经方便了我们书写,但是还不够,为此,正则表达式还给我们提供了预定义类来匹配常见的字符类。


image.png

我们可以自己构造:
ab[0-9][^\r\n]
也可以使用正则的预定义类
ab\d.

边界

举例

image.png

量词

我们希望匹配一个连续出现20次的数字的字符串

好麻烦

贪婪模式和非贪婪模式

这个会匹配多少?
默认是贪婪模式,会都匹配。
如果我们想让它尽可能少的匹配,我们就设置为非贪婪模式。


举例:


分组

我们有这样的场景,匹配字符串Byron出现三次的场景。
学习了量词之后,我们可以这样:Byron{3}
但是这并不是我们需要的,因为它代表的是n出现三次。

上面的例子,如果我们只是想把或作用onCa,我们可以这样

反向引用

场景:


不光是-变成了/,日期的顺序也变了。

我们要替换的内容还在字符串本身里面,就相当于变量的概念了。

image.png

note:如果没有分组的话,$就表示原义了。

忽略分组

image.png

前瞻和后顾

举例



这里的(?=\d)不是正则部分,它是类型断言部分。

相关文章

  • 学习笔记 正则表达式

    2021.01.19 北京海淀 -2℃ 小雪转晴 正则表达式学习笔记 说明:该笔记参考“菜鸟教程”网站正则表达式...

  • 正则表达式学习笔记

    正则表达式学习笔记 一篇记录了学习正则表达式的笔记。 1. 转义字符 在 HTMl 中转义字符以 & 符号开头,分...

  • Python学习随笔

    本笔记整理自中谷教育在线教育视频 学习笔记——正则表达式常用符号 这里学习过正则表达式后,简单做了一个爬虫程序,效...

  • Python ☞ day 11

    Python学习笔记之 正则表达式 re模块概述:Python自1.5以后增加了re的模块,提供了正则表达式模式...

  • python正则表达式学习拾遗

    本篇学习笔记参考re——正则表达式 所作,不明白之处可以参阅上述的官方文档。因为是个人学习笔记,所以并不会完全介绍...

  • 正则表达式

    python学习笔记-正则表达式 标签 : python 特殊符号和字符 re模块:核心函数和方法

  • 正则表达式学习笔记

    [TOC] 正则表达式学习笔记 1. cheatsheet 2. 介绍 2.1 character 有时我们希望m...

  • python爬虫day-13(正则表达式)

    个人学习笔记,方便自己查阅,仅供参考,欢迎交流 正则表达式 1.简单示例 开源中国提供的正则表达式测试网址:htt...

  • 笔记:正则表达式

    正则表达式基础部分笔记

  • 正则表达式

    正则表达式在开发中不会频繁使用,但是需要使用的时候就需要去查阅,这里做一下学习笔记 正则表达式的作用 匹配 分割 ...

网友评论

      本文标题:正则表达式学习笔记

      本文链接:https://www.haomeiwen.com/subject/smfivqtx.html