一、正则表达式概念

  正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。

  1、正则表达式之表示字符

字符  功能
. 匹配任意1个字符(除了\n)
[] 匹配[]中列举的字符
\d 匹配数字,即0-9
\D 匹配非数字,即不是数字
\s

匹配空白,即空格、tab键

\S 匹配非空白
\w 匹配单词字符,即a-z、A-Z、0-9
\W 匹配非单词字符

  简单实例:

import re
ret = re.findall(".","agdhsaghgewj1233") # 匹配任意字符串
ret1 = re.findall("H","Hello,python") #只匹配H字符
ret2 = re.findall("\d","gdhgf1554hgsfhdg") #只匹配数字

表示字符实例

  2.正则表达式之表示数量

符号 功能
* 重复零次或更多次
+ 重复一次或更多次
重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

  简单实例:

ret = re.findall("\w*","Aabcdef") #
ret = re.findall("\d+","dfdfdsfs14fgf24fd4f5") #打印结果为14,24,4,5
ret1 = re.findall("[]a-zA-Z0-9_]{8,20}","hdfhgf1545gfd") # 打印8-20位的字符

表示数量实例

  3.正则表达式之表示边界

字符 功能
^ 匹配字符串开头
$ 匹配字符串结尾
\b 匹配一个单词的边界
\B 匹配非单词边界

  简单实例:

import re
ret = re.findall(r"^[a-z0-9]{4,20}@163.com$","caoyf1992@163.com") # 以a-z字符和0-9数字开头,长度为4-20位
ret1 = re.findall(r"c\b","ddfdsfc lfdfdcc dfjhgjfhgfjgccc") #显示以c为边界的字符

边界实例

  4.正则表达式之匹配分组

字符 功能
| 匹配左右任意一个表达式
(ab) 将括号中字符作为一个分组
\num 引用分组num匹配到的字符串
(?P<name>) 分组起别名
(?P=name) 引用别名为name分组匹配到的字符串

二、re模块的使用

  1、findall

import re
ret=re.findall(r'\d+',"商品:辣条,数量:5,价格:5")
print(ret)

  2、findall优先级

import re
ret = re.findall(r'(数量:\d+),价格:\d+',"商品:辣条,数量:5,价格:5")
print(ret)
#取消优先级
ret = re.findall(r'(?:数量:\d+),价格:\d+',"商品:辣条,数量:5,价格:5")
print(ret)

  3、search

  函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。

import re
ret = re.search(r"\d+", "阅读次数为 9999")
ret.group()
#结果9999

  4、split

  split的优先级查询

import re
ret=re.split(r'\d+',"小米3小花4小松5")
print(ret)
#结果:
# ['小米', '小花', '小松', '']
ret=re.split(r'(\d+)',"小米3小花4小松5")
print(ret)
#结果:
# ['小米', '3', '小花', '4', '小松', '5', '']
#取消优先级
ret=re.split(r'(?:\d+)',"小米3小花4小松5")
print(ret)
# 结果
# ['小米', '小花', '小松', '']

split实例

re模块与正则表达式的更多相关文章

  1. re模块(正则表达式)

    re 模块:正则表达式import re 内置模块: 1> re.match(pattern,string) pattern:就是正则表达式 string:被操作的对象 match,search ...

  2. python常用模块(1):collections模块和re模块(正则表达式详解)

    从今天开始我们就要开始学习python的模块,今天先介绍两个常用模块collections和re模块.还有非常重要的正则表达式,今天学习的正则表达式需要记忆的东西非常多,希望大家可以认真记忆.按常理来 ...

  3. 20、collections模块和re模块(正则表达式详解)

    从今天开始我们就要开始学习python的模块,今天先介绍两个常用模块collections和re模块.还有非常重要的正则表达式,今天学习的正则表达式需要记忆的东西非常多,希望大家可以认真记忆.按常理来 ...

  4. python模块部分 re模块 之正则表达式

    python 全栈开发 1.什么是模块 2.正则表达式 一.什么是模块? 1.模块: 是一组功能的集合 你要和一个东西打交道,但是这个东西本身和python没有关系,这个东西本身就存在, 这时,pyt ...

  5. Python的re模块,正则表达式书写方法

    Python的re模块,正则表达式 #导入re模块 import  re 1.match方法的使用: result = re.match(正则表达式,待匹配的字符串) 正则表达式写法: 第一部分: 字 ...

  6. re 模块与正则表达式

    目录 re 模块 re 模块的基本使用 re 模块 正则表达式与re模块的关系 1:正则表达式是一门独立的技术. 2:正则在任何语言中均可以使用. 3:python中要想使用正则表达式需要通过re模块 ...

  7. Python的re模块,正则表达式用法详解,正则表达式中括号的用法

    Python的re模块,正则表达式 #导入re模块 import  re 1.match方法的使用: result = re.match(正则表达式,待匹配的字符串) 正则表达式写法: 第一部分: 字 ...

  8. re模块,正则表达式起别名和分组机制,collections模块,time与datetime模块,random模块

    re模块和正则表达式别名和分组机制 命名分组 (1)分组--可以让我们从文本内容中提取指定模式的部分内容,用()来表示要提取的分组,需要注意的是分组 是在整个文本符合指定的正则表达式前提下进行的进一步 ...

  9. Python 之 【re模块的正则表达式学习】

    摘要: re模块包括操作正则表达式的函数,一些工作中都需要用到,现在说明下使用方法. 使用说明: 一,re模块下的函数:            函数             描述 compile(pa ...

  10. python中的re模块和正则表达式基础

    1.正则匹配基础知识 (1)通配符. .只匹配一个字符 >>> re.findall("p.ckname","piiickname-pockname&q ...

随机推荐

  1. 针对Oracle的审计方案

    主题:针对Oracle的审计方案 数据库环境:Oracle 11g 数据库审计需求: 1.需要对连接数据库的行为进行审计 2.需要对核心表的DML操作进行审计 3.需要迁移审计数据到指定表空间 4.需 ...

  2. 应用服务器GC回收常见问题总结

    近一段时间多次发现因GC问题造成系统性能问题(应用服务间歇性响应缓慢.应用服务器CPU占用较高等),在此总结一下: 1.代码中直接调用GC.Collect() 2.字符串等操作频繁的内存申请 3.频繁 ...

  3. 【LCT维护基环内向树森林】BZOJ4764 弹飞大爷

    4764: 弹飞大爷 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 101  Solved: 52[Submit][Status][Discuss] ...

  4. hihoCoder #1082 : 然而沼跃鱼早就看穿了一切(字符串处理)

    #1082 : 然而沼跃鱼早就看穿了一切 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句 ...

  5. hdu_1754I Hate It(线段树)

    hdu_1754I Hate It(线段树) 标签: 线段树 题目链接 题意: 中文题意...不多说了,线段树基础题 直接上代码: #include<cstdio> #include< ...

  6. 关于JAVA实现二维码以及添加二维码LOGO

    今天在公司,完成了之前的任务,没有什么事做,就想鼓捣一下二维码,因为之前没有接触过,我就去翻看了几本书,也基本完成了二维码的实现,以及添加二维码的LOGO. 现在绘制二维码一般都使用的是谷歌的zxin ...

  7. Hive HQL学习

    HQL学习   1.hive的数据类型 2.hive_DDL 2.1创建.删除.修改.使用数据库     Default数据库,默认的,优先级相对于其他数据库是最高的   2.2重点:创建表_内部表_ ...

  8. IOS开发之纯代码界面--基本控件使用篇 ┊

    http://www.cocoachina.com/bbs/read.php?tid=131516

  9. Angular 2 前端 http 传输 model 对象及其外键的问题

    个人随笔,记录问题及思路草稿,非文章性质.     对于设备编辑场景,需要显示设备类型(外键),   前端有如下 TypeScript model(此 model 和后端实体 model 通常相对应) ...

  10. struts文件异常Included file cannot be found

    1.命名规范,都是采用struts-xxx.xml文件,即以struts开头 2.file的路径不要以/开头,在其他版本是以/开头的 <include file="/com/bjsxt ...