博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于python中正则表达式的re模块
阅读量:5235 次
发布时间:2019-06-14

本文共 2226 字,大约阅读时间需要 7 分钟。

#-*- coding:utf-8 -*- #Author:Hy #@Time :2018/4/1420:47 import re # . 通配符 print(re.findall(".txt", "helelloasdsaghdsgaldgxa.txtbtxtctxt")) # ^ 只在开头匹配 print(re.findall("^Hello", "Hellohisdghaidhasid")) # $ 只在结尾匹配 print(re.findall("id$", "helolokdasjdashjduahduhid")) # {X,Y}重复指定次数 print(re.findall("a{2,4}", "abaabaaabaaaabaaaaabaaaaaaabaaaaaaaab")) # ? 重复0或者1次 print(re.findall("a?","abcdefagasjdhad")) # * 重复0到无穷次 print(re.findall("a*", "abaabaaabaaaabaaaaabaaaaaaabaaaaaaaab")) # + 重复1到无穷次 print(re.findall("a+", "abaabaaabaaaabaaaaabaaaaaaabaaaaaaaab")) # 在后部加上?则是懒匹配 print(re.findall("a+?", "abaabaaabaaaabaaaaabaaaaaaabaaaaaaaab")) # \ 转义字符 可以吧元字符变为普通字符 print(re.findall("a\+b", "a+ba+c+a+da+b")) # \ 转义字符 \d数字 \D非数字  \w 字母 \W 非字母  \s 空白符 \S非空白符 # \b 后边是特殊字符的 print(re.findall(r"a\b", "a*a@a$accda ad a")) # [] 或 它是[]内部的每个字符和前边整体进行匹配 其内默认所有字符都是普通字符 print(re.findall("ab[cd]", "ab abc abd abcd axxx asasda")) # |  或 它是以|分割的每一个都是单独整体进行匹配 print(re.findall("ab|cd|ef|gh", "aaaab abcdeffghdfgdasdbashdbh")) #()  分组 它是用来把匹配出来的字符进行分组的 #re.search 只匹配第一个,返回值是一个对象 标注了匹配内容的位置和内容本身  .group是显示匹配的内容 print(re.search(r"(?P
[a-z]+)(?P
[0-9]+)", "wdn22why11ydb23hyn77").group()) print(re.findall("(\d+)(\w+)(\s+)", "123hashdh asduh2771233 123jasd h137bnasd u123y 2hj")) #re.match 同上 不过只匹配开头 print(re.match("hello","helloaduashduhasduiha").group()) #re.split 指定以某种方式切割字符串 如下表示的是以空格和|切割 被切掉的就没了 #如果切割的内容左边或者右边没有 切出来的有空串 print(re.split("[ |]","a b c de fg asd eb asd|asdasaf ")) #re.sub 替换字符串 可以指定匹配次数 如果是负数和0 则无意义。。。 print(re.sub("a", "b", "aaaaaaaaaaaaaaaa", 3)) #re.subn 返回值是一个元组 返回替换的结果同时返回替换的次数 print(re.subn("a", "b", "aaaaaaaaaaaaaaaa", 3)) #re.compile 返回已经制定好的匹配规则 com = re.compile("\d+") print(com.findall("SD3HA4SU6K78DH")) #re.findter 返回的是一个迭代器 ret = re.finditer("ab|cd|ef|gh", "aaaab abcdeffghdfgdasdbashdbh") for date in ret: print(date.group()) #在findall中 默认优先把分组中的内容显示出来 但匹配内容是完整的 print(re.findall("www\.(qq|163|sin)\.com", "asdg www.baidu.com www.hao123.com www.qq.com www.sin.com www.163.com")) #在优先级的元字符后面加上?:可以去掉优先级 print(re.findall("www\.(?:qq|163|sin)\.com", "asdg www.baidu.com www.hao123.com www.qq.com www.sin.com www.163.com"))

转载于:https://www.cnblogs.com/hyn934/p/8850045.html

你可能感兴趣的文章
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
自己到底要的是什么
查看>>
Kruskal基础最小生成树
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
Java内部类详解
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
图论-次短路求法
查看>>
What's New for Visual C# 6.0
查看>>
ExtJs学习笔记之ComboBox组件
查看>>
关于收费软件
查看>>