广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python正则表达式
  • 574
分享到

python正则表达式

正则表达式python 2023-01-30 22:01:31 574人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

笔记:一:简介 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 主要介绍python中常用的正则表达式处理函数 提高工作效率,完成内置函数无法完成的任务! 搜索常用正则表达式!-

笔记:
一:简介
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
主要介绍python中常用的正则表达式处理函数
提高工作效率,完成内置函数无法完成的任务!
搜索常用正则表达式!----->提高工作效率!
有意识的多食用正则表达式!
作用是快速检索文本,实现一些替换文本的操作。
检测一串数字是不是电话号码,字符串是不是email,字符串的替换。

二:re.findall函数

在字符串中匹配正则表达式,返回形式为列表!

number1 = re.findall(r'\d+', string1)
(1)'Python' 普通字符,
(2)'\d'元字符---->百度百科元字符
(3)字符集 a[bf]c
(4)概括字符集
# 数字[0-9] 非数字[^0-9] 字符'\D'
# \w == [0-9A-Za-z_] 匹配单词字符 \W 匹配非单词字符
# \D \d
# \s 空白字符 \S 非空白字符
(5)数量词 [a-z]{3,6}?
(6)边界匹配 '^\d{4,8}$
(7)匹配模式(flags)
re.I 使匹配对大小写不敏感
re.L 做本地化识别(locale-aware)匹配
re.M 多行匹配,影响 ^ 和 $
re.S 使 . 匹配包括换行在内的所有字符
re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

二:re.sub函数(正则替换)
re.sub用于替换字符串中的匹配项
re.sub(pattern, repl, string, count=0)

pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

三:re.match函数
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none
其他使用和findall函数完全相同
re.match(pattern, string, flags=0)

pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位

四:re.search函数
re.search 扫描整个字符串并返回第一个成功的匹配。
re.search(pattern, string, flags=0)

pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位
代码:
  1 import re
  2 a = 'C|Python|Java|C#|Python|javascript|Python'
  3 print(a.index('Python') > -1)   # 判断字符是不是在字符串中
  4 print('Python' in a)
  5 
  6 # -----------------------------------------------#
  7 # re.findall函数
  8 # -----------------------------------------------#
  9 # re.findall('正则表达式', a)--->使用关键为正则表达式为变量
 10 # ---------------------常量--------------------#
 11 r = re.findall('Python', a)
 12 if len(r) > 0:
 13     print("字符串中包含PHP")
 14 else:
 15     print("no")
 16 print(r)    # 输出结果用列表的形式存放
 17 
 18 # ----------------------元字符-----------------#
 19 string1 = 'C3Python4Java5C#6Python7Javascript8Python'
 20 # for in
 21 # 正则表达式
 22 
 23 number1 = re.findall(r'\d+', string1)
 24 # D表示非数字,d表示数字 + 表示连续查找!
 25 print(number1)
 26 
 27 # ---------------------字符集-----------------#
 28 string2 = 'afc, acc, adc, aec, abc, ahc'
 29 r = re.findall('a[bf]c', string2)   # 找出中间为b或者f的
 30 print(r)
 31 
 32 r = re.findall('a[^bf]c', string2)  # 找出中间不为b或者f的
 33 print(r)
 34 
 35 r = re.findall('a[c-f]c', string2)  # 连续字符
 36 print(r)
 37 
 38 # ---------------------概括字符集-----------------#
 39 # 数字[0-9] 非数字[^0-9] 字符'\D'
 40 # \w == [0-9A-Za-z_] 匹配单词字符  \W 匹配非单词字符
 41 # \D \d
 42 # \s 空白字符           \S 非空白字符
 43 
 44 string3 = 'afc, acc ahcdsfa sfa s f465 454 561_61'
 45 
 46 r = re.findall('[0-9A-Za-z_]', string3)  # 连续字符s
 47 print(r)
 48 
 49 # ---------------------数量词-----------------#
 50 
 51 string4 = 'python 11111java678php'
 52 r = re.findall('[a-z]{3,6}', string4)   # 贪婪模式匹配
 53 print(r)
 54 
 55 # 贪婪和非贪婪    Python倾向贪婪
 56 
 57 r = re.findall('[a-z]{3,6}?', string4)   # 非贪婪模式匹配
 58 print(r)
 59 
 60 # 匹配 * 前面的一个字符出现零次或者无限多次
 61 # 匹配 + 前面的一个字符出现1次或者无限多次
 62 # 匹配 ? 前面的一个字符出现0次或者1次(字符串的截取)
 63 # 匹配 . 匹配除了换行符\n之外的所有字符
 64 
 65 string5 = 'pytho0python1pythonn2'
 66 r = re.findall('python?', string5)
 67 print('string5:', r)
 68 
 69 # ---------------------边界匹配-----------------#
 70 # ^表示从开始匹配 $ 表示从末尾匹配
 71 
 72 qq = '107847'
 73 r = re.findall('^\d{4,8}$', qq)
 74 print(r)
 75 
 76 # ----------------------组-------------------#
 77 
 78 a = 'pythonpythonpythonpythonpythonpythonpython'
 79 r = re.findall('(python){2}', a)
 80 print(r)
 81 
 82 # ---------------------匹配模式------------------#
 83 
 84 a = 'pythonC#JavaPHP'
 85 r = re.findall('c#', a, re.I)
 86 print(r)
 87 
 88 
 89 # -------------------------------------------------#
 90 # re.sub函数
 91 # -------------------------------------------------#
 92 
 93 lanuage = 'PythonC#JavaPHP'
 94 r = re.sub('C#', 'Go', lanuage, count=0)
 95 # replace函数
 96 print(r)
 97 
 98 # 把函数当做参数传到sub函数中,对于不同的对象做不同的处理!
 99 
100 
101 def convert(value):
102     print(value)
103     matched = value.group()         # 获取匹配到的字符串
104     return '!!' + matched + '@@'    # 对字符串修改
105 
106 
107 r = re.sub('C#', convert, lanuage, count=0)
108 # 把匹配到的字符串作为函数的实参传入函数中,并在函数中对匹配的字符串操作,
109 # 返回替换后的字符串
110 print(r)
111 
112 
113 # -------------------------------------------------#
114 # 函数作为参数的正则匹配例子
115 # -------------------------------------------------#
116 # 数字大于等于6的替换为9,小于等于6的替换为0
117 
118 def convert1(value):
119     matched = value.group()
120     matched = int(matched)  # 转换为数字
121     if matched > 6:
122         return '9'  # 只能返回字符串
123     elif matched < 6:
124         return '0'
125     print(matched)
126 
127 
128 s = 'A8C3721D86'
129 r = re.sub('\d', convert1, s)
130 print(r)
131 
132 # 软件设计思想: 一个函数用另一个函数作为参数
133 # 接受一个值,返回一个值,不关心中间的处理过程
134 
135 # -------------------------------------------------#
136 # search函数和match函数
137 # -------------------------------------------------#
138 s = '18C3721D86'
139 r = re.match('\d', s)
140 r = r.span()    # 拿出位置和值
141 print(r)
142 
143 r = re.search('\d', s)
144 r = r.group()
145 print(r)        # 拿出值
146 
147 # -------------------------------------------------#
148 # group分组-----()
149 # -------------------------------------------------#
150 # (爬虫的应用:根据标签找到标签中间的内容,不包括标签本身)
151 s = 'life is short, i use python'
152 r = re.search('life(.*)python', s)
153 print(r.group(0))    # 获取分组后的匹配结果
154 print(r.group(1))    # 获取分组后的匹配结果
155 
156 r = re.findall('life(.*)python', s)
157 print(r)    # 获取分组后的匹配结果
158 
159 
160 s = 'life is short, i use python, i love python'
161 r = re.search('life(.*)python(.*)python', s)
162 print(r.group(0))    # 获取分组后的匹配结果
163 print(r.group(1))    # 获取分组后的匹配结果
164 print(r.group(2))    # 获取分组后的匹配结果
165 
166 print(r.group(0, 1, 2))    # 获取分组后的匹配结果
167 
168 print(r.groups())           # 匹配结果

 

--结束END--

本文标题: python正则表达式

本文链接: https://www.lsjlt.com/news/179870.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python 正则表达式
    正则表达式的作用:用来匹配字符串 一、字符串方法 字符串提供的方法是完全匹配,不能进行模糊匹配 s = 'hello world' # 字符串提供的方法是完全匹配,不能进行模糊匹配 print(s.find('ll')) # 2 ...
    99+
    2023-01-30
    正则表达式 python
  • python正则表达式
    笔记:一:简介 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 主要介绍Python中常用的正则表达式处理函数 提高工作效率,完成内置函数无法完成的任务! 搜索常用正则表达式!-...
    99+
    2023-01-30
    正则表达式 python
  • Python 正则表达式:compile
    本文以匹配×××ID为例,介绍re模块的compile与match的用法复杂匹配 = re.compile(正则表达式): 将正则表达式实例化             +        re.match(要匹配的字符串): 从字符串开 头/...
    99+
    2023-01-31
    正则表达式 Python compile
  • Python 正则表达式:search
    本文介绍re模块的search的用法复杂匹配 = re.compile(正则表达式): 将正则表达式实例化             +        re.search(要匹配的字符串): 从字符串开头 开始匹配简单匹配 = re.sear...
    99+
    2023-01-31
    正则表达式 Python search
  • Python 正则表达式:split
    作用:用正则表达式的字符分割字符串,正则的字符会被抛弃。本文以 提取URL的地址与参数 为例,介绍re模块的split的用法: 返回值 -> 列表复杂匹配 = re.compile(正则表达式): 将正则表达式实例化         ...
    99+
    2023-01-31
    正则表达式 Python split
  • 在python正则表达式中是怎样正确使用正则表达式
    这篇文章将为大家详细讲解有关在python正则表达式中是怎样正确使用正则表达式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。现在我们已经看了一些简单的正则表达式,那么我们实际在 Python...
    99+
    2023-06-17
  • Python 正则表达式详解
    目录1.正则表达式是什么2.1用正则表达式2.2匹配原理2.3常用函数总结1.正则表达式是什么 很简单就是一种字符串匹配,eg: 比如你在注册账户时我们需要对用户的用户名判断是否合法...
    99+
    2022-11-12
  • Python正则表达式分组
    Python正则表达式分组 分组就是用一对圆括号“()”括起来的正则表达式,匹配出的内容就表示一个分组。从正则表达式的左边开始看,看到的第一个左括号&ldqu...
    99+
    2022-12-19
    Python正则表达式分组 命名分组 后向引用 前向否定断言 后向否定断言
  • Python 08 re 正则表达式
    . 匹配除换行符以外的任意字符\w 匹配字母或数字或下划线或汉字\s 匹配任意的空白符\d 匹配数字\b 匹配单词的开始或结束^ 匹配字符串的开始$ 匹配字符串的结束 代码/语法 说明* 重复零次或更多次+ 重复一次或更多次 重复零次或一次...
    99+
    2023-01-31
    正则表达式 Python
  • 理解python正则表达式
    在python中,对正则表达式的支持是通过re模块来支持的。使用re的步骤是先把表达式字符串编译成pattern实例,然后在使用pattern去匹配文本获取结果。 其实也有另外一种方式,就是直接使用re模块...
    99+
    2022-06-04
    正则表达式 python
  • Python正则表达式 re(regul
    1. 点..: 代表一个字符 (这个跟linux的正则表达式是不同的,那里.代表的是后面字符的一次或0次出现)2. 转义\\或者r'\': 如 r'python\.org' (对.符号的转义)3. ^ 非或叫做排除如[^abc]: 任何以非...
    99+
    2023-01-31
    正则表达式 Python regul
  • Python中的正则表达式
    正则表达式 是包含文本和特殊字符的字符串, 为高级的文本模式匹配, 抽取, 与文本形式的搜索和替换功能提供了基础 Python通过标准库re模块来支持正则表达式 模式匹配的两种方法完成匹配(模式匹配) 搜索(search())...
    99+
    2023-01-31
    正则表达式 Python
  • python学习--正则表达式
    正则表达式是一种用来匹配字符串的强有力的工具它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。Python支持的正则表达式元字符和语法:语法说明实例完整匹配的字...
    99+
    2023-01-31
    正则表达式 python
  • 11 Python的正则表达式
    概述         在上一节,我们介绍了Python的文件操作,包括:打开文件、读取文件、写入文件、关闭文件、文件指针移动、获取目录列表等内容。在这一节中,我们将介绍Python的正则表达式。正则表达式是一种强大的工具,用于在文本中进行匹...
    99+
    2023-09-08
    python 正则表达式 re模块 re.search re.match
  • Python中使用正则表达式及正则表达式匹配规则详解
    目录1 导库2 使用模板3 说明4 示例5 正则表达式匹配规则1 导库 import re 2 使用模板 re_pattern = re.compile(pattern, flags...
    99+
    2023-03-22
    Python正则表达式匹配规则 Python正则表达式
  • 正则表达式
    2019-01-16 作用 :     路由匹配,表单信息的验证  (字符串匹配) 信息提取(在大段文本中提取信息,爬虫) 字符串的提取和校验 []在中括号内匹配任意项  [^]不匹配中括号中的任意一项    [0-9]  0123......
    99+
    2023-01-30
    正则表达式
  • Python全栈之正则表达式
    目录1. 正则表达式_匹配单个字符2. 正则表达式_匹配多个字符3. 正则表达式_匹配分组小提示:4. 小练习答案:总结1. 正则表达式_匹配单个字符 正则表达式在线测试: http...
    99+
    2022-11-12
  • python正则表达式模块re
    正则表达式的特殊元素 匹配符号 描述 '.'(点dot) 在默认模式下,它匹配除换行符之外的任何字符。如果指定了DOTALL标志,则匹配包括换行符在内的任何字符 '^'(Caret) 匹配以字符串开头,...
    99+
    2023-01-30
    模块 正则表达式 python
  • Python正则表达式初识(一)
    首先跟大家简单唠叨两句为什么要学习正则表达式,为什么在网络爬虫的时候离不开正则表达式。正则表达式在处理字符串的时候扮演着非常重要的角色,在网络爬虫的时候也十分常用,大家可以把它学的简单一些,但是不能不学。尽管网络爬虫相关库给我们提供了丰富的...
    99+
    2023-01-31
    正则表达式 Python
  • Python中正则表达式详解
    基础篇 正则表达式在python中运用的非常多,因为他可以进行任意的匹配,可以匹配我们想要提取的信息。当我们接触正则的时候你就会知道正则的强大。正则有一个库re 在一些工程中我们会经常调用正则的库来做与匹配...
    99+
    2022-06-04
    详解 正则表达式 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作