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

正则表达式学习笔记

作者: wishWinds | 来源:发表于2017-11-30 10:55 被阅读0次

[TOC]

正则表达式学习笔记

1. cheatsheet

Regex cheatsheet.png

2. 介绍

2.1 character

有时我们希望meta character来代表字符

\d 单个数字

\w 单个字母或数字

\W 单个非字母或数字

\s 单个空格或TAB

\S 单个非空格或TAB

. 单个任意字符

2.2 quantifier

有时我们希望加上量词加以修饰

? 有或者没有(0或1)

* 0个或者以上

+ 1个或者以上

{n} n个

{min, max} min和max之间包含min和max

2.3 position

有时我们希望指定搜索的位置

^ 代表行首占位符

$ 代表行末占位符

\b 代表文字边界 (word boundary)占位符

2.4 char class/alternation

扩展搜索的or 和 not 功能

[] 可选框, 框内所有字符都是or关系,代表可以是某个字符或者是另一个字符

框内中使用. 代表字面量,不是meta character

-

​ 出现在第一个,代表字面量

​ 出现在非第一个,代表从某字符到某字符,例如[a-z]代表从a到z

^

​ 出现在第一个,代表取反

​ 出现在非第一个,代表字面量

()将alternation包裹其中,并用|分隔,切记,此时分隔匹配的是整个可选单词,而不像[]里是单个字符

2.5 capturing group

正则内部会有一个capturing group的概念。每次匹配中,匹配的字符串为group0, 用()指定的group按顺序为group1, group2...

() 代表我们要捕获的group

2.6 reference

我们通过设置capturing group后,会在某个地方引用它, 通过$符号就可以引用, $0代表整个字符串, $1代表设置的第一个capturing group

有时我们希望有一种变量能够标记某个匹配,使得我们可以重复使用它来代表重复出现。这种思想很像编程中的范型:虽然我们不知道他们具体是什么,但是我想约束他们在表达式中的关系。这时\出现了。 \1代表第一个capturing group

综上:

​ $一般用在替换中。 在替换中引用表达式中的某个capturing group;

​ \一般用在表达式中。自己引用自己的某个captruing group以增加约束关系

3. 总结

我们发现小小的正则表达式,其实体现了编程里面的一些基本思想。

正则的本质是字符串搜索。通过搜索,我们又延伸了搜索中的or not概念来增强表达式的能力。后面我们又加入了变量的功能来得以复用。加入范型的概念以使用更高阶的表达式来约束搜索。

4. js举例

js中使用g代表全局,使用i代表忽略大小写

4.1 match/test/exec

match作用在字符串上,test/exec作用在regex上

match不会返回capturing group

exec每次执行会返回group0, group1…数组。加上g参数后, 需要自己迭代执行, 以获取每次查找的所有group

"My name is John".match(/\b\w\b/g) 匹配所有单词

"abc@abc.com abc.d.e@123.edu abc@abc.net".match(/[.\w]+@\w\.(com|net|edu)/g)匹配邮箱

4.2 split

我们可以用split来指定哪些是分隔符,通常用\W来表示, split后的数组不包含分隔符,如果我们希望保留分隔符,可以用一个tricky方法。使用(\W), 添加一个group

4.3 replace

replace后面可以跟2个参数, 一个是正则表达式,一个是字符串或者函数。

相关文章

  • 学习笔记 正则表达式

    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/acembxtx.html