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 ...
随机推荐
- android中的ContentProvider实现数据共享
为了在应用程序之间交换数据,android中提供了ContentProvider,ContentProvider是不同应用程序之间进行数据交换的标准API.当一个应用程序需要把自己的数据暴露给其他程序 ...
- 新手创建多module mvn工程
1.创建工程 创建一个mvn工程有两种方式,一种是通过命令创建,一种是通过idea去一步一步配置. 1.1 命令模式 mvn archetype:generate -DgroupId={groupId ...
- 前端学习(十四)js回顾和定时器(笔记)
回顾知识点: 作用域: 1.全局变量:在任何位置都可以使用的变量 2.局部变量:只能在函数内部使用的变量 3.闭包:子函数可以使用父函数的局部变量 -- ...
- Ubuntu图形界面和终端界面切换快捷键
Ctrl+Alt+F1可以从图形界面切换到终端界面. Ctrl+Alt+F7可以从终端界面退出来,重新回到图形界面
- DEDE织梦标签经常调用的内容
DEDE织梦标签名称:{/dede:arclist} 详解 标签名称:arclist标记简介:织梦常用标记,也称为自由列表标记,其中imglist.imginfolist.specart.coolar ...
- Vue学习笔记【1】——什么是Vue.js
什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于We ...
- 【转】tomcat优化-有改protocol 和 缓存 集群方案
tomcat优化 在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下七种调优经验. 1. 服务器资源 服务器所能提供CPU.内存.硬 ...
- SQL SELECT TOP, LIMIT, ROWNUM
SQL SELECT TOP, LIMIT, ROWNUM SQL SELECT TOP 子句 SELECT TOP 子句用于指定要返回的记录数量. SELECT TOP子句在包含数千条记录的大型表上 ...
- 【LeetCode 2】两数相加
描述 [题解] 模拟高精度的加法. 用x来记录前面的进位就好. [代码] /** * Definition for singly-linked list. * struct ListNode { * ...
- git stash 保存和恢复进度
1. stash当前修改 git stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录. 比如下面的中间状态,通过git stash命令推送一个新的储藏,当前的工 ...