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

正则表达式笔记

作者: 榷奕 | 来源:发表于2020-02-20 20:45 被阅读0次

正则表达式

正则的用处:python的网页爬虫中用的相当多

写正则表达式的整体思路:

首先把你要匹配的字符串粘过来,然后把里面共性的东西留着,空格换成\s,其他的可变字符串替换成各种匹配,然后那些不变的部分留着就行了。

pattern

元字符 说明
. 所有
\b begin,匹配单词开始
^ 匹配一行的开始
$ 匹配一行的结束
\d digital,数字
\w word,匹配数字字母下划线汉字,什么都能匹配
\s 匹配空格
\ 转义符 .*\ 这些用

.匹配任意

字符集:[12] 中括号是字符集,匹配中括号中任意字符中的一个,这个表达式匹配1或者2,只匹配一个

[0-9]就相当于\d

这个[]这里还要多写一点,因为[]里面无限装东西,而含义就是这个字符集相当于里面装的所有东西的其中一种,就有一个或的意思在里面。如果是两个表达式来取或的话,就用|

次数:

*0或多个

+至少一个

数量词[0-9]{4},匹配四位数,大括号套起来就是次数

[0-9]{4,6}这个是贪婪匹配,比如要被匹配的字符串一共就六个数字,那这肯定就都匹配了,先从上限开始找

[0-9]{4,6}?这个等同于[0-9]{4},后面带了一个问号之后,就不敢多要了,大括号成了废话。

分组()

分组是括号,只要看见括号,而且这个括号前面还没有转义符的话,且括号后面跟的是大括号,比如

([1-9].){3}

这种小括号大括号连着用的结构,相当方便断句啊!

分组的别名

如果分组太多,不命名不好调用。问号尖括号连用,外面用小括号包着,只要看见这个小括号跑不了就是分组,例如:

(?<name1>([1-9].){3})

(?<name1> exp )

如果尖括号前面不带问号的话,这个<>本身就不构成语法。

分组这个东西,有了括号之后,就方便把这个组的取值拉出来,(?<> xxxx)这种表达式,把问号尖括号去掉之后,其他的仍然是一个正常的正则分组。

分组表达式取反
分组取反

问号冒号连用

(?: exp),(?:([1-9].){3})

这个取到的是上面这个表达式没匹配到的部分,问号冒号连用没法命名

贪婪匹配与懒惰匹配

贪婪比如 .*1,*就是贪婪,流星碎片,尽可能多的去匹配

懒惰 .*?1,?就是懒惰,尽可能少的去匹配

这两个中,都是匹配xxxxx1,不过第一个要匹配到最后一个1,第二个到第一个1就停了。

(问号, 表示一点贪婪之后???)

相关文章

  • 学习笔记 正则表达式

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

  • 笔记:正则表达式

    正则表达式基础部分笔记

  • js高级(四)

    JavaScript高级第04天笔记 1.正则表达式概述 1.1什么是正则表达式 正则表达式( Regular E...

  • 正则表达式学习笔记

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

  • JavaScript正则表达式

    JavaScript 正则表达式 @(笔记)[正则表达式] 第一章 课程简介 1-1 JS正则表达式简介及应用 课...

  • Python学习随笔

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

  • 作业-第04周--课堂-Day15-正则表达式与三剑客知识应用实

    Day15 课堂笔记 1. 正则表达式 什么是正则表达式? 简单地说,正则表达式就是为了处理大量的字符串及文本而定...

  • 一个程序员的自我学习第一天

    《正则表达式必知必会》笔记 第一章:正则表达式入门 1:正则表达式是一些用来匹配和处理文本的字符串。正则...

  • Python ☞ day 11

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

  • Python3.5笔记——第11章 正则表达式

    Python3.5笔记 第11章 正则表达式 认识正则表达式 正则表达式是一个特殊字符序列,能够帮助用户检查一个字...

网友评论

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

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