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 数据异步加载
public class MainActivity extends Activity { ListView listView; File cache; //访问其他线程在当前线程中存放的数据 Hand ...
- 《构建之法》需求分析 读书笔记 Week6
本周选读<构建之法>第8章——需求分析.由于有团队项目初期调研阶段做调查问卷的经历,这一章节中很多知识点我都比较有体会.对我而言,这一章节最有价值的内容就是厘清了关于需求分析的两个误解和近 ...
- JAVA求解质因数
/** * 求质因数 * @param n * @return */ public static List<Integer> generatePrimeFactors(int n){ Li ...
- [机器学习][face recognition] 一个视频人脸识别实现
开发环境和用到的库: Ubuntu jupyter notebook(python3.6) OpenCV Dlib face_recognition 实现效果如下(视频截图): #coding=utf ...
- CSS和jQuery分别实现图片无缝滚动效果
一.效果图 二.使用CSS实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- Nginx基础优化
Nginx基础优化 1.隐藏nginx header版本号 1.1查看版本号 [root@Nginx ~]# curl -I http://www.yunwei.cn HTTP/1.1 200 OK ...
- 通过list中值得名称查询索引号
>>> a = ['www','iplaypython','com']>>> a.index('iplaypython')
- Spring 整合 Redis(转)
转自http://blog.csdn.net/java2000_wl/article/details/8543203 pom构建: <modelVersion>4.0.0</mode ...
- Yii2增、删、改、查
$order_model = OrderHeader::find()->where(['user_id'=>$user_id, 'order_type'=>'1'])->and ...
- 【Codeforces Beta Round #88 C】Cycle
[Link]:http://codeforces.com/problemset/problem/117/C [Description] 问你一张图里面有没有一个三元环,有的话就输出. [Solutio ...