Python 基础 - Day 5 Learning Note - 模块 之 标准库:RE (14) 正则表达式

RE 模块介绍

正则表达式(RE)用作于处理文件和数据,为高级文本模式匹配,以及搜索-替代等功能提供基础。 实质就是一些由字符和特殊符号(元字符:metacharacter)组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能按某种模式匹配一个有相似特征的字符串的集合,也能按某种模式匹配一系列有相似特征的字符串,我们称为模式匹配 (patten match)。 在python中, pattern-match 有两种主要方式完成: 搜索(search)和匹配(match)。 搜索,在字符串任意部分中搜索匹配的模式;匹配,判断一个字符串能否从起始处全部或部分的匹配某个模式。

元字符表 metacharacter

符号 描述 正则表达式 匹配的字符串
 使用择一匹配多个正则表达式模式,也称为union 或 Logical OR
 re1|re2 匹配正则表达式re1re2 bat|bet|bit bat、bet、bit 
匹配任意单个字符
 .  
匹配任何字符(除了\n之外),

包括字母、数字、空格(并不包括“\n”换位符)、可打印和不可打印字符。

显示句点符号本身,需要用”\.“

f.o  匹配在字母“f”和“o”之前任意一个字符;例如fao,f9o,f#o 
.. 任意两个字符 
 .end 匹配在字符串“end”之前的任意一个字符 
从字符串起始或者结尾或者单词边界匹配   
^或\A 匹配字符串起始部分  ^Dear  任何以Dear作为起始的字符串
$或\Z 匹配字符串终止部分   /bin/tesh$ 任何以/bin/tesh作为结尾的字符串
    ^Subject:hi$ 任何由单独的字符串Subject:hi构成的字符串 
\bBb 匹配一个单词的边界  \bthe 任何以the开始的字符串
 \bthe\b 仅仅匹配单词the 
\B 匹配出现在一个单词中间的模式 \Bthe  任何包含但并不以the作为起始的字符串 
创建字符集,限定范围和否定
[...]  匹配来自字符集的任意单一字符  b[aeiu]t bat、bet、bit、but 
 [cr][23][dp][o2] 一个包含四个字符的字符串,例如c2do\r3p2等
 [..x-y..] 匹配x~y范围中的任意单一字符  z.[0-9] 字母"z"后跟着任何字符,然后跟着一个数字
  [^...]  不匹配此字符集中出现的任何一个字符,包括某一范围的字符(如果在此字符集中出现)   [^aeiou]  一个非元音字符 
[^\t\n] 不匹配制表符或\n 
使用闭包操作符实现存在性和频数匹配   
* 匹配0次或者多次前面出现的正则表达式 [A-Za-z0-9]*  
+ 匹配1次或者多次前面出现的正则表达式  [a-z]+\.com  
匹配0次或者1次前面出现的正则表达式  [dn]ot? t出现一次或者不出现,即do,no,dot,not
{} {N}精确匹配N次前面出现的正则表达式;{M,N}匹配M~N次前面出现的正则表达式  [0-9]{15,16} 匹配15或者16个数字(例如信用卡号码)
    </?[^>]+> 匹配全部有效(和无效的)HTML标签
表示字符集的特殊字符
 \d 匹配任何十进制数字, 等于[0-9]  \d{3}-\d{3}-\d{4} 美国电话号码的格式
 \D 不匹配任何非数值型的数字, 等于[^0-9]     
 \w 匹配任何字母数字字符,等于[A-Za-z0-9]   \[email protected]\w+\.com 以[email protected]格式表示的简单电子邮件地址 
\W  不匹配任何字母数字,等于[^A-Za-z0-9]     
 \s 匹配任何空格字符,等于[\n\t\r\v\f] (\S与之相反)    
使用圆括号指定分组
(...) 匹配封闭的正则表达式,然后存为子组; 用groups来体现 \d+(\.\d*)? 表示简单浮点数的字符串;也就是说,任何十进制数字,后面可以接一个小数点和零个或者多个十进制数字 
扩展表示法 
 (?...) 在判断匹配之前提供标记,实现一个前视(或者后视)匹配或者条件检查     
(?P<name>...)      

常用操作

re.match()

re.group()

.

时间: 2024-08-03 18:03:48

Python 基础 - Day 5 Learning Note - 模块 之 标准库:RE (14) 正则表达式的相关文章

Python 基础 - Day 5 Learning Note - 模块 之 标准库:random 模块

常用操作 import random # 随机浮点数 print(random.random()) # 0.1706000097536472 # 返回生成一个0到1的随机浮点数: 0<= n <= 1 print(random.uniform(1,8)) # 4.060336609768256 # 函数语法: random.uniform(a,b) # 返回生成以a为下限,b为上限的随机浮点数: a<=n<=b # 随机整数 print(random.randint(1,10))

Python 基础 - Day 5 Learning Note - 模块 之 标准库:xml (9)

xml 模块介绍 和json一样,适用于不同语言及程序的数据交换的协议.但是json用起来更简单,并有代替xml的趋势. 现在多数金融数据提供方(e.g. bloombegy)还在用xml的方式. 在python中,生成和解析 XML 文件 用 导入 xml.etree.ElementTree 模块 xml文件的格式 xml的格式如下,就是通过<>节点来区别数据结构的: xml的格式 常用操作 读取xml import xml.etree.ElementTree as ET tree = ET

Python 基础 - Day 5 Learning Note - 模块 之 标准库:datetime (2)

介绍 Datetime 模块是time模块的再次封装,提供了更多的接口.主要是日期和时间的解析,格式化及运算. 其他关于时间的模块: time - basic calendar - basic pytz - 关于time zones dateutil - extension of datetime 常用操作 Times类 import datetime t = datetime.time(1,2,3) # 01:02:03 print(t) # 语法: datetime.time(hour,mi

Python 基础 - Day 5 Learning Note - 模块 之 标准库:ConfigParser (10)

configparser模块介绍 用于生成和修改常见的配置文档(configuration file), 配置文件格式 用户配置文件就是在用户登录电脑时,或是用户在使用软件时,软件系统为用户所要加载所需环境的设置和文件的集合.它包括所有用户专用的配置设置,如程序项目.屏幕颜色.网络连接.打印机连接.鼠标设置及窗口的大小和位置等.一般格式包括ini,cfg,xml, config等. 配置文件的格式如下 [DEFAULT] ServerAliveInterval = 45 Compression

Python 基础 - Day 5 Learning Note - 模块 之 标准库:time (1)

时间的表示方式 1. 间戳 timestamp:  从1970年1月1日 00:00:00 开始按秒计算的偏移量,以float数据类型呈现. 返回时间戳的函数有: time() , clock() 等. 2. sruct_time 元祖方式: 返回struct_time元祖的函数包括 gmtime(), localtime(), strptim(). 返回的元祖包括以下9个元素. 索引 INDEX 属性 ATTRIBUTE 值 VALUES 0 tm_year  比如2011 1 tm_mon

Python 基础 - Day 4 Learning Note - 模块 - Json &amp; Pickle

Json和Pickle的区别 在python的序列化的两个模块中,json模块是用于字符串和python数据类型间进行转换:另一个pickle模块,是用于python特有的类型(所有数据类型和python的数据类型间进行转换.json是可以在不同语言之间交换数据的,而pickle只在python之间使用.json只能序列化最基本的数据类型,json只能把常用的数据类型序列化(列表.字典.列表.字符串.数字.),比如日期格式.类对象!josn就不行了.而pickle可以序列化所有的数据类型,包括类

Python 基础 - Day 5 Learning Note - 模块 之 介绍篇

定义 模块(module)支持从逻辑上组织Python代码,本质就是.py结尾的python文件(e.g.文件名:test.py; 模块名:test),目的是实现某项功能.将其他模块属性附加到你的模块中的操作叫导入(import). 模块分为三类:标准库.开源模块(open source module)和自定义模块. 包(package)是一个有层次的文件目录结构, 定义了一个由模块和子包组成的python应用程序执行环境.和模块及类一样,也使用句点属性标识来访问他们的元素.使用标准的impor

python基础教程_学习笔记16:标准库:一些最爱——random

标准库:一些最爱 random random模块包括返回随机数的函数,可以用于模拟或者用于任何产生随机输出的程序. 事实上,所产生的数字都是伪随机数,它们以一个可预测的系统作为基础,除非是为了强加密的目标,否则这些随机数还是足够随机的.如果真的需要随机性,可以使用os模块的urandom函数. 重要函数 函数 描述 random() 返回0<=n<1之间的随机实数n,其中0<n<=1 getrandbits(n) 以长整型形式返回n个随机位(二进制数) uniform(a,b) 返

python基础教程_学习笔记17:标准库:一些最爱——time

标准库:一些最爱 time time模块所包含的函数能够实现以下功能: 获取当前时间.操作系统时间和日期.从字符串读取时间以及格式化时间为字符串. 日期可以用实数(从"新纪元"的1月1日0点开始计算到现在的秒数,新纪元是一个与平台相关的年份,对unix来说是1970年),或者是包含有9个整数的元组. 日期元组的字段含义 如元组: (2008,1,21,12,2,56,0,21,0) 表示2008年1月21日12时2分56秒,星期一,且是当年的第21天(无夏令时). 索引 字段 值 0