Python中的正则表达式要用到re模块,下面先介绍一下正则表达式需要用到的特殊字符和说明

常用的RegEx基础语法
语法 说明
\d 匹配一个数字字符
\D 匹配一个非数字字符
\s 匹配任何不可见字符(空格、制表符、换行符等)
\S 匹配任何可见字符
\w 匹配任何单词字符
\W 匹配任何非单词字符
. 匹配所有字符
^ 从字符串开头开始匹配,比如^\d表示以一个数字字符开头
$ 从字符串末尾开始匹配,比如\d$表示以一个数字字符结尾
* 匹配前一个字符任意次
+ 匹配前一个字符一次或多次
? 匹配前一个字符零次或一次
{m} 匹配前一个字符m次
{m,n} 匹配前一个字符最少m次最多n次
\ 转义字符
[] 比如[a-z]表示匹配从a到z之间的所有字符串
| 或,比如A|B表示匹配A或B
() 精确匹配括号中指定的模式
常用的RegEx函数
函数 说明
search 从字符串中进行搜索,成功则返回匹配目标,失败则返回None
match 从字符串开头进行匹配,成功则返回匹配目标,失败则返回None
fullmatch 匹配整个字符串
split 根据模式分割字符串
findall 查找字符串中所有非重叠匹配
finditer 类似于findall,但返回Python迭代器
sub 用提供的字符串替代匹配模式

以下为部分示例:对于split函数,我们在对字符串进行分割的时候可以直接调用split方法,再次不再进行

>>> import re#导入包
>>> a='xiaoming:wo jiao xiaoming,wo de dianhua shi +86-666666'
>>> print(re.search(pattern='\d+\W\d+',string=a))
<re.Match object; span=(45, 54), match='86-666666'>#此处输出的时一个match对象>>> mp=re.search(pattern='\d+\W\d+',string=a)#查找电话号码
>>> print(mp.group())#使用group方法获取于指定模式相匹配的字符串
86-666666
>>> print(mp.start())#获取第一个匹配字符串的索引
45
>>> print(mp.end())#获取匹配字符串的
54
>>> print(mp.span())#获取索引范围
(45, 54)>>> print(re.findall(pattern='\w+',string=a))
['xiaoming', 'wo', 'jiao', 'xiaoming', 'wo', 'de', 'dianhua', 'shi', '86', '666666']>>> m_sub=re.sub(pattern='\w+:',string=a,repl='xiaohong:')#模式替代,使用repl传入的字符串替代匹配到的第一个字符串
>>> print(m_sub)
xiaohong:wo jiao xiaoming,wo de dianhua shi +86-6666#编译模式
>>> p=re.compile('\d{6}')#预先设定好匹配的模式
>>> m1=p.search(a)#对预先设定好的模式调用查找
>>> print(m1.group())获取查找到的字符串
666666

正则表达式——python对字符串的查找匹配相关推荐

  1. java正则表达式所有字符串_java正则表达式如何获取字符串中所有匹配内容

    java正则表达式如何获取字符串中所有匹配内容以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java正则表达式如何获取 ...

  2. python查找字符串所在行_使用Python CSV和glob查找匹配的字符串和打印行

    我有数百个csv文件,我正在尝试编写一个python脚本,它将解析所有这些文件并打印出具有匹配字符串的行.如果我们能用一个字符串(而不是一个字符串列表)来实现这一点,我会很高兴的.使用python 2 ...

  3. Python在字符串中查找子字符串

    这是小白博主在刷leetcode时遇到的一道题,这是博主近日刷的leetcode题库时结果表现最好的一道题,故在此分享这份喜悦. 希望在以后的日子里可以继续进步,持之以恒. 目录 题目介绍 解题思路及 ...

  4. python检索字符串_python查找字符串所有子串

    原博文 2018-08-02 14:44 − https://blog.csdn.net/jiangjiang_jian/article/details/79453856 [s[i:i + x + 1 ...

  5. python 正则_python正则查找

    [转摘]PYTHON 正则表达式 网上转的一篇,把正则的规则系统的分类了.. 好文,共享,备查 ~~~~~~~~~~~ http://www.cnblogs.com/huxi/archive/2010 ...

  6. python的字符串、列表、元组、字典、集合

    python数据类型 前言 一.字符串 二.列表 三.元组 四.字典 五.集合 前言 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tupl ...

  7. python精确匹配字符串_Python: 字符串搜索和匹配,re.compile() 编译正则表达式字符串,然后使用match() , findall() 或者finditer() 等方法...

    1. 使用find()方法 >>> text = 'yeah, but no, but yeah, but no, but yeah' >>> text.find( ...

  8. Python Str字符串 字符串常用方法 定义 创建 拆分 成分判断 大小写调整 格式化 填充 替换 访问 查找

    Python Str字符串 定义 文本序列类型-Python中的str文本数据是用str对象或字符串处理的.字符串是Unicode代码点的不可变序列.字符串文字的书写方式多种多样: 单引号:'allo ...

  9. python 字符串的搜索匹配与替换(详细)

    文章目录 Python 内的正则使用基础 正则修饰符的使用 python 里的反向引用.捕获 需求:单次匹配字符串 `re.match()` 函数 `re.fullmatch()` 函数 `re.se ...

最新文章

  1. 如何给女朋友解释并发与并行的区别?
  2. clamp mnn不支持
  3. 使用hibernate实现树形结构无限级分类
  4. [BC Round#26] Card 【各种水】
  5. 64位装32位oracle软件,在64位linux下安装32位oracle软件
  6. 不用找了,基于 Redis 的分布式锁实战来了
  7. myeclipse中删除tomcat 的server后,重新添加进来的方法
  8. 解决 找不到方法:“Void System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)”。
  9. Java之图书管理系统(手把手教程,超详细)
  10. 微信小程序列表切换样式简单案例
  11. 机器学习入门实例三——线性回归预测店铺销售额
  12. 移动产品设计书籍推荐
  13. GSMA选举新的董事会成员,宣布Orange董事长兼首席执行官Stéphane Richard出任主席
  14. 根据出生日期获取农历信息
  15. krpano获取地址栏传参
  16. 深度学习模型部署技术方案
  17. linux的头文件下载,Linux内核头文件(linux headers)
  18. Lambda Evens(Lambda 偶数)
  19. C++ pthread cond_wait 和 cond_broadcast的使用
  20. 后端基础入门技术栈简单小结(非常简单)

热门文章

  1. js的阻塞加载、延迟加载和异步加载
  2. OSI/RM各层功能—物理层、数据链路层
  3. java并行编程_RxJava(十一): 并行编程
  4. IDEA自动把数据库表映射为实体类
  5. 基础知识redis详解--【Foam番茄】
  6. CGB2106-Day03
  7. Linux·VFS虚拟文件系统
  8. 【C/C++】教你区分libc、glibc、libgcc、libstdc++等名词
  9. html浏览器在哪里,javascript在哪儿启用?
  10. [转]信息安全相关理论题(三)