python模块部分 re模块 之正则表达式
python 全栈开发
1.什么是模块
2.正则表达式
一.什么是模块?
1.模块: 是一组功能的集合
你要和一个东西打交道,但是这个东西本身和python没有关系,这个东西本身就存在, 这时,python提供了一个功能的集合(模块),专门负责和这个东西打交道
2.模块的类型:
(1)内置模块: 不需要我们安装的,解释器自带的
(2)第三方模块: 需要我们自己安装的
(3)自定义模块: 我们自己写的模块
例如:
是谁把所有的硬件 管理起来的? 是操作系统.
文件 在硬盘上储存着,从硬盘上读文件.
这时,要引入模块:
import os (模块)
os.remove (删除文件)
os.rename (重命名文件)
模块实际上就是给我们提供功能, 这个要操作的内容本来就存在, 模块只不过是python提供给我们去操作这个内容的方法
二.正则表达式
re模块: 在python中使用正则表达式
1.正则表达式:是一种独立的规则,一种独立的语言.
2正则表达式的具体内容是什么?能做什么?
正则表达式:(1)从大段的文字中找到符合规则的内容(# 爬虫 从网页的字符串中获取你想要的数据 # 日志分析 提取 2018-8-12 10:---- 花的所有钱)
例:1,把一个文件中所有的手机号码都找出来
# open打开文件
# 读文件 str
# 从一长串的字符串中找到所有的11位数字
#一个字符一个字符的读
(2)判断某个字符串是否完全符合规则( # 表单验证 : 手机号 qq号码 邮箱 银行卡 身份证号 密码)
2.输入手机号码
# 验证这个手机号是否合法
# 给这个手机号发送一个验证码
# 用户收到验证码 填写验证码
# 完成注册
3.正则表达式:只和字符串打交道.
规则: 从字符串中找到符合规则的内容.
4.正则表达式主要内容:
(1)字符组: [] 写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的
[0-9] 匹配数字
[a-z] 匹配小写字母
[A-Z] 匹配大写字母
[a-zA-Z] 匹配大小写字母
[a-zA-Z0-9] 匹配大小写字母+数字
[a-zA-Z0-9_] 匹配大小写字母+数字+下划线
(2)元字符
\w : 匹配数字字母下划线 word关键字 [a-zA-Z0-9_]
\d : 匹配所有数字 digit [0-9]
\s : 匹配所有空白符 回车/换行符(\n) 制表符/ Tab键(\t) 空格(space)
\W,\D,\S 和 \w,\d,\s 取反
[\w\W], [\d\D], [\s\S] : 是三组全集,意思是匹配所有字符.
\b : 表示单词的边界
和转义字母相关的元字符: \w \d \s (\n \t) \b \W \D \S (ps;方便记忆的顺序)
^ : 匹配一个字符串的开始
$ : 匹配一个字符串的结束
. ; 表示匹配除了换行符之外的所有字符
[] : 只要出现在中括号中的内容都可以被匹配
[^] : 只要不出现在中括号中的内容都可以被匹配
有一些有特殊意义的元字符进入字符组中会回复它本来的意义 : . | [ ] ( )
a|b : (或) 符合a规则的或者b规则的都可以被匹配
如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面
将更复杂的\更长的规则写在最前面
() : 分组 表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组
(3)量词
{n} : 表示 这个量词之前的字符 出现了n次
{n,} : 表示 这个量词之前的字符 至少出现了n次
{n,m} : 表示 这个量词之前的字符 出现了n-m次
? : 表示 这个量词之前的字符 出现了0次或1次 表示可有可无
+ : 表示 这个量词之前的字符 出现了1次或多次
* : 表示 这个量词之前的字符 出现了0次或多次
相对练习题:
匹配整数: \d+
匹配小数: \d+\.\d+
匹配小数或者整数 :\d+\.\d+|\d+ 或 \d+(\.\d+)?
匹配身份证号码 : [1-9]\d{16}[\dx]|[1-9]\d{14} 或 [1-9]\d{14}(\d{2}[\dX])?
5.正则表达式的匹配特点:
贪婪匹配 : 它会在允许的范围内取最长的结果
非贪婪匹配/惰性匹配: 在量词的后面加上 ?
. * ? x : 匹配任意非换行符,任意长度,直到遇见x时就停止.
注: 转义符
在正则表达式中,有很多有特殊意义的是元字符,比如\d和\s等,如果要在正则中匹配正常的"\d"而不是"数字"就需要对"\"进行转义,变成'\\'。
print(r"\\n")
print(r"\n")
关于字符串挪到python中的转义的问题 : 只需要在工具中测试完毕,确认可以匹配上之后,挪到python中在字符串的外面加上r,r''即可
python模块部分 re模块 之正则表达式的更多相关文章
- Python模块之常用模块,反射以及正则表达式
常用模块 1. OS模块 用于提供系统级别的操作,系统目录,文件,路径,环境变量等 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("di ...
- Python中的re模块--正则表达式
Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...
- python常用模块(1):collections模块和re模块(正则表达式详解)
从今天开始我们就要开始学习python的模块,今天先介绍两个常用模块collections和re模块.还有非常重要的正则表达式,今天学习的正则表达式需要记忆的东西非常多,希望大家可以认真记忆.按常理来 ...
- python中的re模块——正则表达式
re模块:正则表达式 正则表达式:为匹配字符 import re #导入re模块 #re.findall('正则表达式','被匹配字符') re模块下findall用法 在正则表达式中: \w 表示匹 ...
- (转)正则表达式与Python(RE)模块
Python正则表达式指南 原文:http://blog.csdn.net/qdx411324962/article/details/46799831 Python3(2):正则表达式与Python ...
- vscode如何配置debug,python正则表达式如何匹配括号,关于python如何导入自定义模块
关于vscode如何配置debug的问题: 1.下载安装好python,并且配置好 环境变量 2.https://www.cnblogs.com/asce/p/11600904.html 3.严格按照 ...
- 常用正则表达式与python中的re模块
正则表达式是一种通用的字符串匹配技术,不会因为编程语言不一样而发生变化. 部分常用正则表达式规则介绍: . 匹配任意的一个字符串,除了\n * 匹配任意字符串0次或者任意次 \w 匹配字母.数字.下划 ...
- python中的re模块和正则表达式基础
1.正则匹配基础知识 (1)通配符. .只匹配一个字符 >>> re.findall("p.ckname","piiickname-pockname&q ...
- python兵器谱之re模块与正则表达式
一.正则表达式 ·1.正则表达式的应用场景: 应用特有的规则,给我需要的符合规则的字符串,在字符串中只有符合条件的才会被匹配和从大段的字符串中提取需要的数据 ·匹配字符串的规则: ·1.字符串:用户输 ...
随机推荐
- ROS学习手记 - 7 创建ROS msg & srv
至此,我们初步学习了ROS的基本工具,接下来一步步理解ROS的各个工作部件的创建和工作原理. 本文的详细文档:http://wenku.baidu.com/view/623f41b3376baf1ff ...
- SAP生产机该不该开放Debuger权限(转)
前段时间公司定制系统在调用SAP RFC接口的时候报错了,看错误消息一时半会儿也不知道是哪里参数数据错误,就想着进到SAP系统里面对这个接口做远程Debuger,跟踪一下参数变量的变化,结果发现根本就 ...
- 45.纯 CSS 创作一个菱形 loader 动画
原文地址:https://segmentfault.com/a/1190000015208027#articleHeader3 感想: 网格布局-> display: grid; HTML co ...
- linux 之 source命令:
source命令: source命令也称为“点命令”,也就是一个点符号(.).source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录. 用法: source filen ...
- hive 动态分区实现 (hive-1.1.0)
笔者使用的hive版本是hive-1.1.0 hive-1.1.0动态分区的默认实现是只有map没有reduce,通过执行计划就可以看出来.(执行计划如下) insert overwrite tabl ...
- electron 项目的打包方式,以及 jquery 插件的修改使用
< 一 > 应用打包 1,首先确定安装了 node 和 npm 2,全局安装打包依赖 => npm i electron-packager -g 3,打包命令 electron-p ...
- Redis 内存溢出过期策略
1: 设置内存最大值, 如果该主机只作为 redis 服务器, 无其它比较占用资源的服务, 建议设置为内存的 3/4 大小, 单位 B 2: 设置内存溢出解决策略, 推荐 1-5 任选一种, 不推荐 ...
- 结构体中string成员的问题
在结构体中定义字符串的成员的时候要注意定义成string有时候,在某些程序中给成员赋值会崩溃,但是不确定到底什么情况会崩溃.运行报错如下: Program received signal SIGSEG ...
- C++中多态中构造函数与析构函数的调用
做个实验,看一下成员变量的构造析构,父类子类的构造析构,以及虚函数对调用的影响. #include <iostream> using namespace std; class Member ...
- Vim 常用命令和编辑方法
命令模式 :e <path/to/file> → 打开一个文件 :w → 存盘 :wq → 存盘 + 退出 (:w 存盘, :q 退出) (陈皓注::w 后可以跟文件名) :savea ...