py_正则表达式练习
正则表达式:
#正则表达式
#键盘数字6上的符号,^表示行的开始,$ 表示行的结束 #test = "tm queal Tomorrow Moon"
'''
^tm #匹配tm开头的文字
$tm #匹配
'''
# 元字符
# /b /w
'''
#字符类
[0-9] 等价于 \d[a-z0-9A-Z]等价于\w(只考虑英文)
#排除字符
^ 如在括号里面,表示排除这些字符 eg:[^a-zA-Z]
#选择字符
|表示选择,
(^\d{15}$)|(^\d(18)$)|(^\d{17}(\d|X|x))$ #匹配第一代身份证,第二代身份证
解释:^表示开始,为15个数字,并且以数字结尾,
或者以数字开头,18位的数字,并且以数字结尾,
或以数字开头,17位的数字,并且以X或x结尾
#转义字符:
例:需要匹配 127.0.0.1 [1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} '''
| 代码 | 元字符说明 |
| . | 匹配换行符以外的任意字符 |
| \w | 匹配字母,数字,下划线或汉字 |
| \W | 匹配字母,数字,下划线或汉字以外的字符 |
| \s | 匹配单个空白符(包括Tab和换行符) |
| \S | 匹配单个空白符(包括Tab和换行符)以外的字符 |
| \d | 匹配的数字 |
| \b | 匹配单词的开始或者结束,但是通常是分界符是空格,标点符号或者换行 |
| ^ | 匹配字符的开始 |
| $ | 匹配字符的结束 |
| 限定符 | 说明 | 举例 |
| ? | 匹配前面字符的0次或者1次 | colou?r ,可匹配到color和colour |
| + | 匹配前面字符的一次或者多次 | go+gle,可以匹配到:gogle,goo…ogle |
| * | 匹配前面的字符的零次或者多次 | go*gle,可以匹配到:ggle,goo…ogle |
| {n} | 匹配前面字符的n次 | go{2},可以匹配到:google |
| {n,} | 匹配前面字符最少n次 | go{2,}gle,可以匹配到:google,goo...ogle |
| {n,m} | 匹配前面字符最少n次,最多m次 | google{1,3} 可以匹配到:google,googleee |
import re #导入正则表达式模块 # 在py中match()
# re.match(pattern,string,[flags]) # \w 匹配字母数字下划线或者数字 +匹配前面字符的一次或者多次
# r 代表原始字符,防止出现转义
pattern = r'mr_\w+'
string = "MR_CODE mr_code"
match = re.match(pattern,string,re.I) # i表示不区分大小写
print(match)
#ps <re.Match object; span=(0, 7), match='MR_CODE'>
# 因为不匹配空格,故未匹配到 mr_code
# 将空格去掉后,MR_CODEmr_code 则可匹配到 MR_CODEmr_code pattern2 = r'mr_\w+'
string2 = "sssMR_CODE mr_code"
match2 = re.match(pattern2,string2,re.I) # i表示不区分大小写
print(match2)
# 若未匹配到,返回None # 在py中search()
pattern3 = r'mr_\w+'
string3 = "sssMR_CODE mr_code"
search = re.search(pattern3,string3,re.I) # i表示不区分大小写
print(search)
# <re.Match object; span=(3, 10), match='MR_CODE'> pattern4 = r'mr_\w+'
string4 = "ssssssMR_CODE mr_code"
search2 = re.search(pattern4,string4,re.I) # i表示不区分大小写
print(search2)
# <re.Match object; span=(6, 13), match='MR_CODE'> # 在py中findall()
pattern5 = r'mr_\w+'
string5 = "ssssssMR_CODE mr_code"
search5 = re.findall(pattern5,string5,re.I) # i表示不区分大小写
print(search5)
print("findall()") # 在py中sub() 替换
pattern6 = r'1[34578]\d{9}'
string6 = "中奖号码为:89332,联系电话:13611111111"
search6 = re.sub(pattern6,'1我爱学py',string6) # i表示不区分大小写
print("sub()")
print(search6)
# 中奖号码为:89332,联系电话:1我爱学py
py_正则表达式练习的更多相关文章
- Python之正则表达式(re模块)
本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 正则表达式(Regluar Expressions)又称规则 ...
- 【转】Python之正则表达式(re模块)
[转]Python之正则表达式(re模块) 本节内容 re模块介绍 使用re模块的步骤 re模块简单应用示例 关于匹配对象的说明 说说正则表达式字符串前的r前缀 re模块综合应用实例 参考文档 提示: ...
- Python基础:28正则表达式
一:概述 正则表达式(RE)为高级文本模式匹配,以及搜索-替代等功能提供了基础.正则表达式(RE)是一些由字符和特殊符号组成的字符串,它们能匹配多个字符串.Python通过标准库的re模块支持正则表达 ...
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- Python高手之路【五】python基础之正则表达式
下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- C#基础篇 - 正则表达式入门
1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
随机推荐
- Centos7 如何通过win10 的远程桌面连接进行远程访问
首先,如果安装测centos7是已经安装了GNOME 或者 KDE 桌面, 则只需要再安装xrdp就可以了. 直接通过yum install xrdp 是不行的,因为xrdp 不在默认源中 先配置 ...
- Flask框架(二):路由与蓝图
一.路由 使用 route() 装饰器来把函数绑定到 URL: @app.route('/') def index(): return 'Index Page' @app.route("/h ...
- 034_go语言中的工作池
代码演示 package main import "fmt" import "time" func worker(id int, jobs <-chan ...
- 久等了,你要的 Python 书籍推荐,来了
前言 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家提供 ...
- LinuX操作系统基础------>了解文件结构和相关的文件操作
了解LinuX文件系统 熟悉LinuX的文件结构 熟悉LinuX的基本操作指令 利用所学指令进行指令组合操作 什么是文件?什么是目录? 文件:一般是一个独立的东西,可以通过某些工具将其打开 目录:可以 ...
- docker 启动redis 报错!
首先通过命令进入: docker exec -it ‘容器名’ redis-cli 错误信息: There was an unexpected error (type=Internal Serve ...
- 刚体验完RabbitMQ?一文带你SpringBoot+RabbitMQ方式收发消息
人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 这篇是消息队列RabbitMQ的第二弹. 上一篇的结尾我也预告了本篇的内容:利用RabbitTemplate和注解进行收发消息,还有一个我 ...
- 个性探测综述阅读笔记——Recent trends in deep learning based personality detection
目录 abstract 1. introduction 1.1 个性衡量方法 1.2 应用前景 1.3 伦理道德 2. Related works 3. Baseline methods 3.1 文本 ...
- vue项目发布后带路径打开页面报404问题
环境: 后端,python+uwsgi启动 前端:vue 用nginx运行,指定静态目录 问题 :发布后带路径打开页面报404问题,带路径打开即不是打开的主页 解决方案: https://route ...
- 将阿里矢量图添加到element-ui
在阿里矢量图的操作 选择需要的图标添加至购物车 选择图标 将购物车中的图标, 添加至项目 添加至项目 会自动跳转到我的项目 项目页面 在 更多操作 中选择 编辑项目 更多操作 将 Fo ...