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 ...
随机推荐
- JNI原理与静态、动态注册
前言 JNI不仅仅在NDK开发中应用,它更是Android系统中Java与Native交互的桥梁,不理解JNI的话,你就只能停留在Java Framework层.这一个系列我们来一起深入学习JNI. ...
- 安装python及编辑工具PyCharm
win10下安装python环境,安装编辑工具PyCharm 1.安装 pythonpython安装包下载地址https://www.python.org/ftp/python/3.8.0/pytho ...
- Spring Security + JWT学习
开胃:Oauth2认证流程分析 现在第三方登录已经很普遍了,随便哪个App都会有使用微信登录,使用手机号码登录,或者使用支付宝登录等功能... 下面我们就以使用微信登录,做一个简单的流程分析分析 开胃 ...
- spring约束
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 【LeetCode 10】正则表达式匹配
题目链接 [题解] 看到这个题解 写的代码. 就是加个备忘录法.优化一下暴力的做法. 匹配的时候如果遇到号的话,就两种可能.不再考虑它前面一个字符了. 跳过这个或者.或者继续用前面那个字符匹配. 即d ...
- 【dart学习】-- Dart之函数
1. 指定返回值得函数 /** * 无返回值的函数 * params: 可以是任意类型(var和Object类型也可以任意类型). 当然这里的参数类型你可以随意指定我这里已dynamic为例 * 参数 ...
- Android中的onWindowFocusChanged()方法详解
Android中获取手机屏幕的高度和宽度,我们知道在onCreate方法中获取到的值都是为0的,有人说可以在onClick方法中获取值,这个也是个方法 ,但在onWindowFocusChanged方 ...
- NX二次开发-自定义添加右键菜单RegisterConfigureContextMenuCallback
首先声明这个知识我以前不知道,是夏天的时候看到别人在唐工的QQ群里问的,唐工说西门子官方有这个例子.那个时候我因为在忙其他事情,也就没去研究那个右键菜单到底是怎么做的.关于自定义添加右键菜单Regis ...
- NodeJS+Express+mySQL服务端开发详解
随着NodeJS的发展,现在已经被很多人熟知,NodeJS已经成为了前端开发人员必备的技能.本文不会对NodeJS过多介绍 如果你感兴趣可以访问NodeJS 官网, 维基百科 本文是利用NodeJS+ ...
- yield和生成器, 通过斐波那契数列学习(2.5)
实现斐波那契数列的集中方法 返回一个数 def fib(max): n, a, b = 0, 0, 1 while n < max: print(b) a, b = b, a+b n += 1 ...