Python之re模块正则表达式
re模块用于对python的正则表达式的操作
字符:
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意空白符
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
次数
*重复零次或多次
+重复一次或多次
?重复零次或者一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
出现一串类似于这样的字符代表匹配上了 使用group()把匹配的字符打印出来
match是从字符串开头开始匹配所以匹配到了第一个字符a
搜索整个字符串匹配第一个数字
匹配第一个一串数字 加了+号
后面加了一串字符串也是匹配第一个
匹配所有的使用另外一个方法findall 这里后面不用group
取出所有非数字的字符
使用数字作为分隔符分割
替换所有匹配字符串
替换一次
匹配IP地址
1,匹配一个数字只匹配到1
2,匹配多个数字配置到10
3,匹配多个数字1-4次匹配到10 因为ip地址之间使用.分割
4,使用\d+.表示匹配数字加. 后面{1,4}代表匹配1-4次
PS:这里的.代表匹配任意一个字符这里刚刚好任意一个字符是.需要指定匹配.则在前面加\
假如这个字符串里面还有其他数字怎么来匹配到IP地址呢
re.search("[0-2]{0,3}[0-9]{0,3}[0-9]{0,3}\.[0-2]{0,3}[0-9]{0,3}[0-9]{0,3}\.[0-2]{0,3}[0-9]{0,3}[0-9]{0,3}\.[0-2]{0,3}[0-9]{0,3}[0-9]{0,3}",t).group()
'10.8.45.27'
更加严谨一点的表达式
re.search("(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])",t).group()
以取IP第一位为例
re.search("(\d{1,2}|1\d\d|2[0-4]\d\25[0-5])\.",t).group()
(\d{1,2}|1\d\d|2[0-4]\d\25[0-5])\.
第一位要不就是一个两位数 要不就是以1开头的三位数 要不就是以2开头第二位是0-4之一第三位是一个数字 要不就是25开头第三位为0-5(严格来说应该是0-4) 最后匹配一个.号 最后一位数不带.号
使用groups生成元祖
name = "liu yueming"
re.search("(\w+) (\w+)",name).groups()
('liu', 'yueming')
>>> res = re.search("\w+",name)
>>> res = re.search("(?P<name>\w+)\s(?P<last_name>\w+)",name)
>>> res.group("name")
'liu'
>>> res.group("last_name")
'yueming'
取到名和姓 用的少
使用正则表达式实现计算器功能
Python之re模块正则表达式的更多相关文章
- 【Python开发】Python之re模块 —— 正则表达式操作
Python之re模块 -- 正则表达式操作 这个模块提供了与 Perl 相似l的正则表达式匹配操作.Unicode字符串也同样适用. 正则表达式使用反斜杠" \ "来代表特殊形式 ...
- Python之re模块 —— 正则表达式操作
这个模块提供了与 Perl 相似l的正则表达式匹配操作.Unicode字符串也同样适用. 正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟Python的语法冲突, ...
- Python 之Re模块(正则表达式)
一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配. 二.正则表达式中常用的字符含义 1.普通字符和11个元字符: ...
- 第11.18节 Python 中re模块的匹配对象
匹配对象是Python中re模块正则表达式匹配处理的返回结果,用于存放匹配的情况.老猿认为匹配对象更多的应该是与组匹配模式的功能对应的,只是没有使用组匹配模式的正则表达式整体作为组0. 为了说明下面的 ...
- Python的regex模块——更强大的正则表达式引擎
Python自带了正则表达式引擎(内置的re模块),但是不支持一些高级特性,比如下面这几个: 固化分组 Atomic grouping 占有优先量词 Possessive quantifi ...
- Python中的re模块--正则表达式
Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...
- day18 python之re模块与正则表达式
正则表达式 正则表达式,就是匹配字符串内容的一种规则. 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...
- 正则表达式与Python中re模块的使用
正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...
- python全栈开发之正则表达式和python的re模块
正则表达式和python的re模块 python全栈开发,正则表达式,re模块 一 正则表达式 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的 ...
随机推荐
- 谈谈.Net技术面试
1.引子 最近一直在负责.net(B/S方向)技术面试相关的工作,前前后后面试了不少人,但是通过率较低,大概只有20%左右:有颇多感慨. 最近也一直比较困惑,原因究竟是什么? 是我们要求太高,应聘者本 ...
- C语言字符串与数字相互转换
在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串.字符串是以“\0”作为结束符.C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数. ● 字符串输出函数puts. ● ...
- java 练手 谁是最好的Coder
Problem A 谁是最好的Coder 时间限制:1000 ms | 内存限制:65535 KB 描述 计科班有很多Coder,帅帅想知道自己是不是综合实力最强的coder. 帅帅喜欢帅,所 ...
- 【小TIP】记录各种错误【更新中】
最好程序一遍通过,为了提高代码能力,这里将用TIP的形式记录来犯过的错误.不断更新中. *已经转移到闪存.. [150214]WA:检查是否数组开小了. [150212]WA:如果程序中有乘号,需要留 ...
- d4d#9 玩Docker只要浏览器就够了,PWD是个神奇的网站
本文是d4d系列的第9篇,在这一篇中给大家介绍一个学习Docker最为快捷高效的方式,你不需要自己搭建环境,也不用担心把自己的开发环境搞乱,你需要的只是一个浏览器,就可以立即开始学习Docker的常用 ...
- vi/vim操作
vi/vim是unix/linux操作系统下的文本编辑器. 由于unix/linux万物届文件的特性,vi/vim可以编辑任何格式的文件. 下面是常见的知识点,仅供参考: 编辑方式:vi/vim + ...
- HTTP长连接和短连接 + Websocket
HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题,T ...
- macOS下MySQL 8.0 安装与配置教程
一.前言 1.本教程主要内容 适用Homebrew安装MySQL MySQL 8.0 基础适用于配置 MySQL shell管理常用语法示例(用户.权限等) MySQL字符编码配置 MySQL远程访问 ...
- [C++]指针/指针数组/数组指针/多维指针/单值指针/多值指针
int main(){ //单值指针(指向单个值得指针,类同普通变量) int *px = new int; *px = 100; printf("%d",*px); delete ...
- Charles 网络抓包工具
1.Charles 简介 Charles 是在 Mac.Linux 或 Windows 下常用的 http 协议网络包截取工具,在平常的测试与调式过程中,掌握此工具就基本可以不用其他抓包工具了.Cha ...