美文网首页
13-Python之路-进阶-正则表达式

13-Python之路-进阶-正则表达式

作者: 程序记录日志 | 来源:发表于2022-05-03 02:23 被阅读0次

简介

  • 正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串

RE 模块

语法

  • re.match()尝试从字符串的起始位置匹配一个模式,如果起始位置匹配不成功的话,match()就返回none
import re       # 导入模块
result = re.match("正则表达式要匹配的字符串")       # 使用match方法进行匹配操作
result.group()  #如果上一步匹配到数据的话,可以使用group方法来提取数据

单字符匹配

字符 功能
. 匹配任意一个字符(除了\n)
[] 匹配[]中列举的字符
\d 匹配数字(0-9)
\D 匹配非数字
\s 匹配空白(空格 、Tab键)
\S 匹配非空白
\w 匹配单词字符(a-z、A-Z、0-9、_)
\W 匹配非单词字符

多个字符匹配

字符 功能
* 匹配前一个字符出现0次或者无限次
+ 匹配前一个字符出现1次或者无限次
匹配前一个字符出现1次或者0次
{m} 匹配前一个字符出现m次
{m,n} 匹配前一个字符出现从m到n次

开头结尾匹配

字符 功能
^ 匹配字符串开头
$ 匹配字符串结尾

分组匹配

字符 功能
| 匹配左右任意一个表达式
(ab) 将括号中字符作为一个分组
\num 引用分组num匹配到字符串
(?P<name>) 给分组起名
(?P=name) 引用别名和name分组匹配到的字符串

高级用法

search

  • re.search扫描整个字符串并返回第一个成功的匹配

search:语法

import re
ret = re.search(r"正则表达式","正则表达式要匹配的字符串")
ret.group()

search和match区别

  • re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None
  • re.search匹配整个字符串,直到找到一个匹配

findall

  • 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表。如果没有找到匹配的,则返回空列表

findall:语法

import re
ret = re.findall(r"正则表达式","正则表达式要匹配的字符串")
print(ret)

sub

  • 用于替换字符串中的匹配项

sub:语法

import re
ret = re.sub(r"正则表达式","替换的字符串","正则表达式要匹配的字符串")
print(ret)

split

  • 按照能够匹配的子串将字符串分隔后返回列表

split:语法

import re
ret = re.split(r"正则表达式","正则表达式要匹配的字符串")
print(ret)

贪婪和非贪婪

  • Python默认是贪婪模式,总是尝试匹配尽可能多的字符。非贪婪模式则相反,总是尝试匹配尽可能少的字符

r的作用

  • Python中字符串前面加上r表示原生字符串,与大多数编程语言相同,正则表达式里使用\作为转义字符,使用r就不用再转义字符

相关文章

网友评论

      本文标题:13-Python之路-进阶-正则表达式

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