随笔 - 6  文章 - 0  评论 - 0  阅读 - 3631

【学习笔记】最简单通俗易懂的正则表达式教程

在线验证网站:https://regex101.com/

学习参考:白月黑羽/《实战Python网络爬虫》

一.限定符

  1.  .

  匹配除了换行符之外的任何单个字符,任何一个字开头,紧跟一个色字

  

  代码:

  

 

  r的含义:raw string原始字符串

  compile产生一个Pattern对象,可以调用各种方法,对正则表达式的匹配方式  

  findall返回一个列表

 

  2.  ?

  表示前面的子表达式0次或1次

  

 

  最后一行,猴子逗号后面没有其它字符了,但是?表示匹配1次或0次, 所以最后一行也选中了一个逗号字符。

 

  3.  *

  匹配前面的子表达式任意次,包括0次

  *代表代表前面这个任意字符出现任意次,0也算任意次

  

  对比:逗号本身代表一个字符,逗号后面没有字符,点‘.’一定要匹配上一个字符

  

  注:中文逗号“,”

 

  以绿开头,色出现任意次数的

  

 

  4.  +

  匹配前面的子表达式一次或多次,不包括0次

  

 

  *与+对比:+至少匹配一次

 

  5.  {}

  表示前面的字符匹配指定的次数

  注意:英文花括号,否则不生效

  

 

  

 

  

  

  6.  []

  方括号表示括号内可选 

  [abc] 可以匹配 a, b, 或者 c 里面的任意一个字符。等价于 [a-c] 。

  [a-c] 中间的 - 表示一个范围从a 到 c。

  .在方括号内仅表示.失去特殊含义

  ^在方括号内依旧表示非

 

  7.  ()

  括号称为正则表达式的组选择

  

 

  8.  |

  表示匹配其中之一

 

二.对元字符的转义

 

   反斜杠\为转义字符

   

 

  注:此处*和+皆可

 

  反斜杠后面接一些字符,表示匹配 某种类型 的一个字符。  

  \d 匹配0-9之间任意一个数字字符,等价于表达式 [0-9]

  \D 匹配任意一个不是0-9之间的数字字符,等价于表达式 [^0-9]

  \s 匹配任意一个空白字符,包括 空格、tab、换行符等,等价于表达式 [\t\n\r\f\v]

  \S 匹配任意一个非空白字符,等价于表达式 [^ \t\n\r\f\v]

  \w 匹配任意一个文字字符,包括大小写字母、数字、下划线,等价于表达式 [a-zA-Z0-9_]

  缺省情况也包括 Unicode文字字符,如果指定 ASCII 码标记,则只包括ASCII字母

  \W 匹配任意一个非文字字符,等价于表达式 [^a-zA-Z0-9_]

 

  反斜杠也可以用在方括号里面,比如 [\s,.] 表示匹配 : 任何空白字符, 或者逗号,或者点

 

三.起始结尾位置和单行多行模式

   ^表示匹配文本的起始位置

  正则表达式可以设定 单行模式 和 多行模式

  如果是 单行模式 ,表示匹配 整个文本 的开头位置。(默认)

  如果是 多行模式 ,表示匹配 文本每行 的开头位置。(re.M或者re.MULTILINE)

  

 

  $ 表示匹配文本的 结尾 位置。

  如果是 单行模式 ,表示匹配 整个文本 的结尾位置。

  如果是 多行模式 ,表示匹配 文本每行 的结尾位置。

  

 

四.切割字符串

  正则表达式 [;,\s]\s* 指定了,分割符为 分号、逗号、空格 里面的任意一种均可,并且 该符号周围可以有不定数量的空格。 

  注:\s为空白字符

 

 

五.正则处理函数

  1.re.match函数

  从字符串的开头开始匹配一个模式,如果成功匹配,就返回一个匹配成功的对象,否则返回None。

  使用方式:re.match(pattern,string,flags=0)

  2.re.search函数

  扫描整个字符串并返回第一次成功匹配的对象,如果匹配失败,就返回None。

  使用方式:re.search(pattern,string,flags=0)

  3.re.findall函数

  用于获取字符串中所有匹配的字符串,并以列表的形式返回。

  使用方式:re.findall(pattern,string,flags=0)

  4.re.sub函数

  用于替换字符串中的匹配项,如果没有匹配的项,则返回没有匹配的字符串。

  使用方式:re.sub(pattern,string,flags=0)

 

posted on   田某人的退学日志  阅读(564)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示