python学习笔记(十)——正则表达式和re模块
#正则表达式和re模块
# match(pattern, string,[flag]) #在字符串开始时进行匹配
# pattern 正则表达式
# string 要匹配的字符串
# [flag] 可选标志位,用于控制匹配方式,不区分大小写等
# 匹配字符串是否以mr_开头,不区分大小写
import re
pattern = r'mr_\w+'
string = 'MR_Shop mr_shop'
match = re.match(pattern,string,re.I) #re.I表示不区分大小写
print(match) #匹配成功返回match对象
print('匹配起始位置:',match.start())
print('匹配结束位置:',match.end())
print('匹配位置元组:',match.span())
print('要匹配的字符串:',match.string)
print('匹配到的数据:',match.group())
string = '项目名称MR_SHOP mr_shop'
match = re.match(pattern,string,re.I)
print(match) #匹配失败返回None
# 验证输入号码是否是中国移动的号码
import re
pattern = r'(13[4-9]\d{8})|(147)|(15[012789]\d{8})|18[278]\d{8}'
mobile_1 = '15312584698'
match = re.match(pattern,mobile_1)
if match == None:
print(mobile_1,'不是中国移动号码')
else:
print(mobile_1,'是中国移动号码')
mobile_2 = '15123654785'
match = re.match(pattern,mobile_2)
if match== None:
print(mobile_2, '不是中国移动号码')
else:
print(mobile_2, '是中国移动号码')
# re.search(pattern,string,[flag]) 搜索第一个匹配的值
import re
pattern = r'mr_\w+'
string = 'MR_SHOP mr_SHOP'
match =re.search(pattern,string,re.I)
print(match) #匹配成功返回match对象,输出匹配结果
string = '项目名称MR_SHOP mr_shop'
match = re.search(pattern,string,re.I)
print(match)
# re.finall(pattern,string,[flag]) 匹配所有符合正则表达式的字符串
import re
pattern = r'mr_\w+'
string = 'MR_SHOP mr_SHOP'
match =re.findall(pattern,string,re.I)
print(match) #匹配成功以列表形式返回
string = '项目名称MR_SHOP mr_shop'
match = re.findall(pattern,string,re.I)
print(match)
#模式字符串包含分组则返回匹配文本
import re
pattern = r'([1-9]{3}(\.[0-9]{1,3}){3})'
string_1 = '127.25.36.3 152.36.22.3'
match = re.findall(pattern,string_1) #想要获取整个模式字符串的匹配,需要将模式字符串用小括号括起来
for item in match:
print(item[0])
# 字符串替换
# re.sub(pattern,repl,string,count,flags)
# pattern 正则表达式
# repl 要替换的字符串
# string 被查找替换的原始字符串
# count 可选参数,模式匹配后替换的最大次数,默认为0,表示替换所有
# flag 可选参数,控制匹配方式
# 替换危险字符
import re
pattern = r'(黑客)|(监听)|(抓包)|(Trojan)'
string = '我是一名程序员,喜欢看黑客方面的书,想研究一下Trojan'
sub = re.sub(pattern,'**',string)
print(sub)
string = '我是一名程序员,喜欢看计算机网络方面的书,喜欢开发网站'
sub = re.sub(pattern,'**',string)
print(sub)
# 使用正则表达式分割字符串
# re.split(pattern,string,[maxsplit],[flags])
# pattern 正则表达式
# string 匹配字符串
# maxsplit 设置最大拆分次数
# flags 标志位,控制匹配参数
# 输出被@的好友名称
import re
str1 = '@扎克伯格 @马云 @俞敏洪'
pattern = r'\s*@'
list1 = re.split(pattern,str1)
print("您@的好友:")
for item in list1:
if item != "": #输出不为空的元素
print(item)
python学习笔记(十)——正则表达式和re模块的更多相关文章
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- python学习笔记(26)-request模块
python学习笔记 #requests import requests #from class_005.http_resuest import HttpRequest login_url = &qu ...
- Python学习笔记十_模块、第三方模块安装、模块导入
一.模块.包 1.模块 模块实质上就是一个python文件.它是用来组织代码的,意思就是把python代码写到里面,文件名就是模块的名称,test.py test就是模块的名称 2.包 包,packa ...
- python学习笔记十——模块与函数
第五章 模块与函数 5.1 python程序的结构 函数+类->模块 模块+模块->包 函数+类+模块+包=Python pyth ...
- Python学习笔记4(函数与模块)
1.Python程序的结构 Python的程序由包(package).模块(module)和函数组成. 模块是处理一类问题的集合,由函数和类组成. 包是由一系列模块组成的集合.包是一个完成特定任务的工 ...
- Python 学习 第十五篇:模块搜索路径和包导入
在导入自定义的模块时,除了指定模块名之外,也需要指定目录,由于Python把目录称作包,因此,这类导入被称为包导入.包导入把计算机上的目录变成Python的命名空间,而目录中所包含的子目录和模块文件则 ...
- python学习笔记:第八天(模块)
Python3 模块 脚本上是用 python 解释器来编程,如果从 Python 解释器退出再进入,那么定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办法,把这些定义存放在文件中 ...
- python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作
django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...
- Python学习笔记013_正则表达式
Python中的正则表达式是通过 re 模块实现的. 通配符 . 表示除了换行以外的任何字符; 编写正则表达式时使用 r're' , r + 正则表达式内容 >>> impor ...
随机推荐
- pytest框架结构运行规则及命名方式
Pytest框架结构 Import pytest 类似的setup,teardown同样更灵活,还有个session() 模块级 (setup_module/teardown_module) 不在类中 ...
- linux nohup python 后台运行无输出问题
参考:https://blog.csdn.net/zj360202/article/details/78894512 nohup python test.py & nohup python t ...
- 使用MySQL Workbench查询超时的错误
MySQL Workbench是MySQL提供的连接工具,一直在用它.但是今天运行了一个SQL缺报出如下的错误: errcode 2013 lost connection to mysql serve ...
- Asp.net Controller中View 和Action方法认证Authorize 及对AuthorizeAttribute扩展
Asp.net Controller中View和Action方法认证Authorize 在建立Web 站点安全性时 1.登录后才可访问系统文件 ——限制 Forms认证 <authenticat ...
- Android 导致OOM的常见原因
OOM主要有两种原因导致: 1. 加载大图片: 2. 内存泄漏: 一.加载大图片 在Android应用中加载Bitmap的操作是需要特别小心处理的,因为Bitmap会消耗很多内存.比如,Galaxy ...
- myeclipse 报错:Set project compiler compliance settings to '1.5'
myeclipse 报错:Set project compiler compliance settings to '1.5' 解决方法:项目右击-->properties-->java c ...
- nodejs模块——fs模块 使用fs.read读文件
使用fs.read读文件 fs.read() 先介绍fs.open. fs.open(path,flags,[mode],callback)方法用于打开文件,以便fs.read()读取. 参数说明: ...
- Android VideoView无法播放网络视频
今天学习Android播放视频和音频,其中在练习播放视频的时候无法播放网络视频,网络视频是别人发布在网上的,但是把视频放在本地是可以的,最后推测是没有开放网络的访问权限的问题,果然开放了之后就能正常访 ...
- php获取微信openid
使用微信接口,无论是自动登录还是微信支付我们首先需要获取的就是openid,获取openid的方式有两种,一种是在关注的时候进行获取,这种订阅号就可以获取的到,第二种是通过网页授权获取,这种获取需要的 ...
- SpringBoot集成Swagger(Swagger的使用),生成接口文档,方便前后端分离开发
首先上一张成果图. 1.Maven依赖 <dependency> <groupId>io.springfox</groupId> <artifactId&g ...