正则表达式——python对字符串的查找匹配
Python中的正则表达式要用到re模块,下面先介绍一下正则表达式需要用到的特殊字符和说明
语法 | 说明 |
\d | 匹配一个数字字符 |
\D | 匹配一个非数字字符 |
\s | 匹配任何不可见字符(空格、制表符、换行符等) |
\S | 匹配任何可见字符 |
\w | 匹配任何单词字符 |
\W | 匹配任何非单词字符 |
. | 匹配所有字符 |
^ | 从字符串开头开始匹配,比如^\d表示以一个数字字符开头 |
$ | 从字符串末尾开始匹配,比如\d$表示以一个数字字符结尾 |
* | 匹配前一个字符任意次 |
+ | 匹配前一个字符一次或多次 |
? | 匹配前一个字符零次或一次 |
{m} | 匹配前一个字符m次 |
{m,n} | 匹配前一个字符最少m次最多n次 |
\ | 转义字符 |
[] | 比如[a-z]表示匹配从a到z之间的所有字符串 |
| | 或,比如A|B表示匹配A或B |
() | 精确匹配括号中指定的模式 |
函数 | 说明 |
---|---|
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对字符串的查找匹配相关推荐
- java正则表达式所有字符串_java正则表达式如何获取字符串中所有匹配内容
java正则表达式如何获取字符串中所有匹配内容以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java正则表达式如何获取 ...
- python查找字符串所在行_使用Python CSV和glob查找匹配的字符串和打印行
我有数百个csv文件,我正在尝试编写一个python脚本,它将解析所有这些文件并打印出具有匹配字符串的行.如果我们能用一个字符串(而不是一个字符串列表)来实现这一点,我会很高兴的.使用python 2 ...
- Python在字符串中查找子字符串
这是小白博主在刷leetcode时遇到的一道题,这是博主近日刷的leetcode题库时结果表现最好的一道题,故在此分享这份喜悦. 希望在以后的日子里可以继续进步,持之以恒. 目录 题目介绍 解题思路及 ...
- python检索字符串_python查找字符串所有子串
原博文 2018-08-02 14:44 − https://blog.csdn.net/jiangjiang_jian/article/details/79453856 [s[i:i + x + 1 ...
- python 正则_python正则查找
[转摘]PYTHON 正则表达式 网上转的一篇,把正则的规则系统的分类了.. 好文,共享,备查 ~~~~~~~~~~~ http://www.cnblogs.com/huxi/archive/2010 ...
- python的字符串、列表、元组、字典、集合
python数据类型 前言 一.字符串 二.列表 三.元组 四.字典 五.集合 前言 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tupl ...
- python精确匹配字符串_Python: 字符串搜索和匹配,re.compile() 编译正则表达式字符串,然后使用match() , findall() 或者finditer() 等方法...
1. 使用find()方法 >>> text = 'yeah, but no, but yeah, but no, but yeah' >>> text.find( ...
- Python Str字符串 字符串常用方法 定义 创建 拆分 成分判断 大小写调整 格式化 填充 替换 访问 查找
Python Str字符串 定义 文本序列类型-Python中的str文本数据是用str对象或字符串处理的.字符串是Unicode代码点的不可变序列.字符串文字的书写方式多种多样: 单引号:'allo ...
- python 字符串的搜索匹配与替换(详细)
文章目录 Python 内的正则使用基础 正则修饰符的使用 python 里的反向引用.捕获 需求:单次匹配字符串 `re.match()` 函数 `re.fullmatch()` 函数 `re.se ...
最新文章
- 如何给女朋友解释并发与并行的区别?
- clamp mnn不支持
- 使用hibernate实现树形结构无限级分类
- [BC Round#26] Card 【各种水】
- 64位装32位oracle软件,在64位linux下安装32位oracle软件
- 不用找了,基于 Redis 的分布式锁实战来了
- myeclipse中删除tomcat 的server后,重新添加进来的方法
- 解决 找不到方法:“Void System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)”。
- Java之图书管理系统(手把手教程,超详细)
- 微信小程序列表切换样式简单案例
- 机器学习入门实例三——线性回归预测店铺销售额
- 移动产品设计书籍推荐
- GSMA选举新的董事会成员,宣布Orange董事长兼首席执行官Stéphane Richard出任主席
- 根据出生日期获取农历信息
- krpano获取地址栏传参
- 深度学习模型部署技术方案
- linux的头文件下载,Linux内核头文件(linux headers)
- Lambda Evens(Lambda 偶数)
- C++ pthread cond_wait 和 cond_broadcast的使用
- 后端基础入门技术栈简单小结(非常简单)
热门文章
- js的阻塞加载、延迟加载和异步加载
- OSI/RM各层功能—物理层、数据链路层
- java并行编程_RxJava(十一): 并行编程
- IDEA自动把数据库表映射为实体类
- 基础知识redis详解--【Foam番茄】
- CGB2106-Day03
- Linux·VFS虚拟文件系统
- 【C/C++】教你区分libc、glibc、libgcc、libstdc++等名词
- html浏览器在哪里,javascript在哪儿启用?
- [转]信息安全相关理论题(三)