Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python正则表达式

Python正则表达式

作者头像
听着music睡
发布于 2018-11-23 10:07:11
发布于 2018-11-23 10:07:11
72600
代码可运行
举报
文章被收录于专栏:Android干货Android干货
运行总次数:0
代码可运行

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。

1、\d可以匹配一个数字,\w可以匹配一个字母或数字

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'00\d'可以匹配'007',但无法匹配'00A''\d\d\d'可以匹配'010''\w\w\d'可以匹配'py3'

2、.可以匹配任意字符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'py.'可以匹配'pyc''pyo''py!'等等。

3、用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符,用{n,m}表示n-m个字符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
一个复杂的例子:\d{3}\s+\d{3,8}。

我们来从左到右解读一下:

\d{3}表示匹配3个数字,例如'010';

\s可以匹配一个空格(也包括Tab等空白符),所以\s+表示至少有一个空格,例如匹配' '' '等;

\d{3,8}表示3-8个数字,例如'1234567'

4、'-'是特殊字符,在正则表达式中,要用'\'转义

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
匹配'010-12345'这样的号码

正则是\d{3}\-\d{3,8}

5、精确地匹配,可以用[]表示范围

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;

[0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100''0_Z''Py3000'等等;

[a-zA-Z\_][0-9a-zA-Z\_]*可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量;

[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。

6、| 或

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
A|B可以匹配AB,所以(P|p)ython可以匹配'Python'或者'python'

7、^开头

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
^表示行的开头,^\d表示必须以数字开头

8、$结束

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$表示行的结束,\d$表示必须以数字结束

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

re模块正则的使用

正则匹配:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
match()方法判断是否匹配,如果匹配成功,返回一个Match对象,否则返回None。常见的判断方法就是:

test = '用户输入的字符串'
if re.match(r'正则表达式', test):
    print('ok')
else:
    print('failed')
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import re
>>> re.match(r'^\d{3}\-\d{3,8}$', '010-12345')
<_sre.SRE_Match object; span=(0, 9), match='010-12345'>
>>> re.match(r'^\d{3}\-\d{3,8}$', '010 12345')
>>>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-10-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python学习笔记(十一)·正则表达式
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。
公爵
2022/09/28
4420
python学习--正则表达式
正则表达式是一种用来匹配字符串的强有力的工具它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。
py3study
2020/01/13
6820
15 Python 基础: 程序猿必懂知识之正则表达式
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。
野原测试开发
2019/07/24
9370
15 Python 基础: 程序猿必懂知识之正则表达式
Python3 正则表达式
        正则表达式是用来匹配字符串的强有力武器,它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。
嵌入式视觉
2022/09/05
4930
Python3 正则表达式
Python爬虫之正则表达式(1)
A|B可以匹配A或B,所以(P|p)ython可以匹配'Python'或者'python'。
py3study
2020/01/20
5030
正则表达式
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 特殊符号:
爱编程的小明
2022/09/06
7360
正则表达式
正则表达式(二)
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
胡齐
2020/02/14
7090
python3正则表达式笔记
[a-zA-Z\_][0-9-zA-Z\_]*匹配一个由字母和下划线开头,后接任意数字字母和下划线组成的字符串
py3study
2020/01/03
7110
Day16正则表达式
正则表达式(Regular Expression)的主要功能是从字符串(string)中通过特定的模式,搜索希望找到的内容。比如想找到小说中的所有人名,找到字符串中包含的数字。这种格式化的搜索可以写成正则表达式。Python中可以使用包re来处理正则表达式。 # 正则表达式用某些符号代表单个字符: . # 任意的一个字符 a|b # 字符 a 或字符 b [afg] # a 或者 f 或者 g 的一个字符 [0-4] # 0-4 范围内的
林清猫耳
2018/04/26
5670
笔记·正则表达式和re库
提示:本页面转载内容过多,所使用的参考资料全部放在最后一章中 本页面的内容不会获得任何收益,同样本页面的内容也不会发送到任何第三方平台中,White_mu收集此页面的内容仅仅是便于自己学习,如果这触碰了您的利益,请您联系我们:WhitemuTeam@outlook.com
Moemu
2023/05/04
1.1K0
Python(十一)
字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。正则表达式是一种用来匹配字符串的强有力的武器。
1ess
2021/11/01
3390
Python 学习之正则表达式
相信你此刻已经感受到了它的强大之处,接下来就让我们开始正则表达式的学习。先来介绍一下 re 模块。
用户4872888
2019/03/17
6350
详尽解读正则表达式:python下的re方法
正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。
学到老
2019/01/25
2.1K0
详尽解读正则表达式:python下的re方法
python 使用小结
使用Python 已经一段时间了 ,现将python 中可能用到的技巧和一些知识点分享如下。
LhWorld哥陪你聊算法
2018/09/13
4060
正则表达式1.正则表达式概述2.re模块操作3.表示字符4.re模块的高级用法5.贪婪和非贪婪
在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块,名字为re
Python攻城狮
2018/08/23
2K0
正则表达式1.正则表达式概述2.re模块操作3.表示字符4.re模块的高级用法5.贪婪和非贪婪
正则表达式Python_js正则表达式实例
正则表达式 英文名称叫 Regular Expression简称RegEx,是用来匹配字符的一种工具,它常被用在网页爬虫,文稿整理,数据筛选等方面,最常用的就是用在网页爬虫,数据抓取。
全栈程序员站长
2022/11/09
7.2K0
正则表达式Python_js正则表达式实例
Python 学习之正则表达式「上 」
相信你此刻已经感受到了它的强大之处,接下来就让我们开始正则表达式的学习。先来介绍一下 re 模块。
Python技术与生活认知的分享
2018/08/01
3400
Python 学习之正则表达式「上 」
正则表达式
请注意,本文编写于 1726 天前,最后修改于 995 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
3490
正则表达式(python3)
正则表达式是对字符操作的一种逻辑公式,就是用事先定义好的一些特定字符以及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑(可以用来截取或替换操作)
全栈程序员站长
2021/04/16
3900
[Python基础12]正则表达式
本节内容,要讲解的和我们的信息检索有关系,这一方面也是Python在目前非常流行的一个应用方向:爬虫。
周小董
2022/04/12
9410
相关推荐
Python学习笔记(十一)·正则表达式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验