文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python自动化的re模块怎么用

2023-06-26 05:59

关注

今天小编给大家分享一下python自动化的re模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、re是什么?

正则表达式是一个特殊的字符序列,能方便的检查一个字符串是否与某种模式匹配。re模块使得python拥有全部的正则表达式功能。

二、re 模块的作用

通过使用正则表达式,可以:
测试字符串内的模式。—— 例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
替换文本。—— 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。
基于模式匹配从字符串中提取子字符串。—— 可以查找文档内或输入域内特定的文本。

三、re模块的使用

1、常用方法

2、 元字符

匹配任意字符(除\n以外) h. 代表匹配h后的任意一个字符

import reres = 'h.'s = 'hello python'result = re.findall(res, s)print(result)  # ['he', 'ho']

[] 拿[]中的人任意一个字符,去字符串中匹配,匹配到一个返回一个,最后以列表返回

import reres2 = '[hon]'s = 'hello python'result = re.findall(res2, s)print(result)  # ['h', 'o', 'h', 'o', 'n']

\d 匹配数字0-9

import reres2 = '[\d]'s = 'hell666o pyt999hon'result = re.findall(res2, s)print(result)  # ['6', '6', '6', '9', '9', '9']

\D 匹配非数字, 包含空格

import reres2 = '[\D]'s = 'hello 3334 python 88'result = re.findall(res2, s)print(result)  # ['h', 'e', 'l', 'l', 'o', ' ', ' ', 'p', 'y', 't', 'h', 'o', 'n', ' ']

‘\s’ 匹配空白字符

import reres2 = '[\s]'s = 'hello 3334 python 88'result = re.findall(res2, s)print(result)  # [' ', ' ', ' ']

‘\S’ 匹配非空白字符

import reres2 = '[\S]'s = 'hello 3334 python 88'result = re.findall(res2, s)print(result)  # ['h', 'e', 'l', 'l', 'o', '3', '3', '3', '4', 'p', 'y', 't', 'h', 'o', 'n', '8', '8']

\w 匹配非特殊字符,即a-z、A-Z、0-9、_、汉字

import reres2 = '[\w]'s = 'hello#&_ aa 8python中国'result = re.findall(res2, s)print(result)  # ['h', 'e', 'l', 'l', 'o', '_', 'a', 'a', '8', 'p', 'y', 't', 'h', 'o', 'n', '中', '国']

\W 匹配特殊字符 ( - ~@#$&*)空格也属于特殊字符

import reres2 = '[\W]'s = '-hello#&_ aa 8python中国'result = re.findall(res2, s)print(result)  # ['-', '#', '&', ' ', ' ']

3、多字符匹配

(1)*:匹配前一个字符出现一次,或无限次 贪婪模式

import reres2 = 'h*'s = '-hhello hhh python'result = re.findall(res2, s)print(result)  #['', 'hh', '', '', '', '', '', 'hhh', '', '', '', '', 'h', '', '', '']import reres2 = 'h*'s = '-hhello hhh python'result = re.findall(res2, s)print(result)  #['', 'hh', '', '', '', '', '', 'hhh', '', '', '', '', 'h', '', '', '']

(2) + :匹配前一个字符出现1次或无穷次

import reres2 = 'h+'s = '-hhello hhh python'result = re.findall(res2, s)print(result) # ['hh', 'hhh', 'h']

(3)?: 匹配前一个字符出现0次或者1次,非贪婪模式

import reres2 = 'h?'s = '-hhello hhh python'result = re.findall(res2, s)print(result) # ['', 'h', 'h', '', '', '', '', '', 'h', 'h', 'h', '', '', '', '', 'h', '', '', '']

(4) {n} :匹配前一个字符连续出现n次

import reres2 = 'https{2}'s = '-hhello-httpssss-python'result = re.findall(res2, s)print(result) # ['httpss'] 匹配到前一个字符s 连续出现2次

{n,m} :匹配前一个字符出现n-m次

import reres2 = 'https{1,3}'s = '-hhello-httpssss-python'result = re.findall(res2, s)print(result) # ['httpss']

(5) 贪婪模式和非贪婪模式

正则表达式通常使用于查找匹配字符串。贪婪模式,总是尝试匹配尽可能多的字符;非贪婪模式正好相反,总是尝试匹配尽可能少的字符。在"*","?","+","{m,n}"后面加上?,使贪婪变成非贪婪。

(6) | :两个条件进行匹配,或的关系

import reres2 = 'he|ll's = 'hello python'result = re.findall(res2, s)print(result) # ['he', 'll']

(7)边界值:

^ :匹配以哪个字符开头的

import reres2 = '^he's = 'hello python'result = re.findall(res2, s)print(result) # ['he']

$ : 匹配以哪个字符结尾的字符

import reres2 = 'on$'s = 'hello python'result = re.findall(res2, s)print(result) # ['on']

4、分组匹配

() :只匹配()里面的

import reres2 = '#(\w.+?)#'s = "{'mobile_phone':'#mobile_phone#','pwd':'Aa123456'}"result = re.findall(res2, s)print(result)  # ['mobile_phone']

5、match()方法的使用

str = "www.runoob.com"print(re.match('www', str).span())  # 在起始位置匹配 ,返回匹配到的区间下标  (0,3)print(re.match('com', str))  # 不在起始位置匹配  None

6、 search():在字符串中搜索,返回搜索到的第一个

str = "www.runoob.com"print(re.search('www', str).span())  # 在起始位置匹配 ,返回匹配到的区间下标print(re.search('com', str).span())  # 不在起始位置匹配

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

7、 finditer():

匹配所有的字符串,返回迭代器和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

res = 'h.'s = 'hello python'result = re.finditer(res, s)for str in result:    print(str.group())heho

以上就是“python自动化的re模块怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯