python 正则findall右斜杠_python中正则表达式的使用

本文将介绍几个最常用的正则符号,以及正则表达式的应用场景。

如果说【数学表达式】刻画的是数字的内在规律,那么【正则表达式】则是用来刻画和描述字符串内在规律的表达式。记得刚接触python时学习过slice,replace,split等方法,但是一旦遇到复杂的情况这些工具就不能使用了。这个时候【正则表达式】就派上了用场。

使用正则表达式需要导入【re模块包】

import re

主要有三种使用场景

场景1:无法通过切片将字符串的子串返回 findall函数

#语法

findall(pattern,string,flags=0)

pattern:指定需要匹配的正则表达式

string:指定待处理的字符串

flags:指定匹配模式,常用的值可以是re.I,re.M,re.S,re.X

re.I模式是让正则表达式对大小写不敏感

re.M模式是让正则表达式可以多行匹配

re.S模式是指正则符号可以匹配任意字符,包括换行符\n

re.X模式允许正则表达式可以写得更加详细,如多行表示,忽略空白字符,加入注释等

场景2:借助replace无法完成非固定值或非固定位置值的替换 sub函数

#语法

sub(pattern,repl,string,count=0,flags=0)

pattern:指定需要匹配的正则表达式

repl:指定替换成的新值

string:指定待处理的字符串

count:用于指定最多替换的次数,默认0为全部替换

flags:同findall函数中的flags

场景3:借助于split方法无法按照多种值实现字符串的分割 re.split函数

#语法

split(pattern,string,maxsplit=0,flags=0)

pattern:指定需要匹配的正则表达式

string:指定待处理的字符串

maxsplit:用于指定最大分割次数,默认0为全部分割

flags:同findall中的flags

常用的正则符号(注意组合使用)原字符

2. 英文状态的句号点 .

3. 反斜杠 \

4. 英文状态的中括号[]

5. 英文状态的圆括号()

6. 英文状态的问号?

7. 加号+

8. 星号 *

9. 英文状态的大括号{}

下面一一举例介绍:原字符

指代直接存在于字符串内部的子串

#导入第三方模块包

import re

#提取字符串中的子串

s1='python是一门计算机程序语言,python语言具有简洁性、易读性等特点'

re.findall('python',s1)

2. 英文状态的句点号 .

指代任意字符(如数字、字母、标点符号、汉字等),但除了换行符\n

#提取出动力总成的值

s2='此次新朗逸主要搭载了1.5L和1.5T两种动力总成的发动机。别克英朗则搭载了1.0T和1.3T的动力总成。'

#写法1

re.findall('1...',s2)

#写法2用到转义字符\

re.findall('1\...',s2)

3. 反斜杠 \

\n 换行

\t Tab制表符

\d 0-9中的任一数字

\s 任意一种空白(如空格、Tab、换行等)

\w 字母、数字、下划线中的任意一种(63种:52种字母大小写,数字0-9共10种,_1种)

\. 句号点本身

\\ \本身

#剔除字符串中的所有空白

s3=' 距离2019北京马拉松开跑只有两周时间了,\n今年的北京马拉松预报名人数超过16万人,\t媒体公布的

中签率只有16%左右,再创历年来的新低。\n'

print(s3)

re.sub('\s','',s3)

4. 英文状态的中括号[]

指代字符集合,当需要特定字符匹配时,可以选择中括号

#取出手机号信息

s4='用户联系方式:13612345566,用户编号:11011254321'

re.findall('1[356789]\d\d\d\d\d\d\d\d\d',s4)

#提取出动力总成

s5='通过对比新朗逸1.5L和1.5T两种动力在1.5年行使期后的数据。发现1.5T的口碑相对较好!'

re.findall('1.5[a-zA-Z]',s5)

re.findall('1.5[LT]',s5)

5. 英文状态的圆括号()

指代特定内容的截取

#提取出用户的年龄

s6='id:1,name:Tom,age:3,gender:1;id=2,name=Lily,age=5,gender=0'

print(re.findall('\d',s6))

print(re.findall('age:\d',s6))

print((re.findall('age:(\d)',s6)))

6.英文状态的问号 ?

表示匹配前一个字符0次或1次

#超链接的匹配

URL1='https://www.baidu.com/'

URL2='http://www.gov.cn/'

pattern='https?://www\..*?\..*?/'

7. 加号+

表示匹配前一个字符一次及以上

#邮箱地址的匹配

email1='Lsxxx2011@163.com'

email2='654088115@qq.com'

pattern='[0-9a-zA-Z_\.\-]+@[0-9a-zA-Z_\-]+\.com'

8. 星号*

表示匹配前一个字符0次及以上

#提取出产品名称中含有奶粉字样的产品

prod=['婴儿袜','亨氏奶粉','奶粉勺','多功能奶瓶','幼儿奶粉量筒','磨牙棒']

res[]

for i in prod:

res.extend(re.findall('.*奶粉.*',i))

res

# extend()函数用于在列表末尾一次性追加另一个序列中的多个值

9. 英文状态的大括号{}

表示匹配前一个字符特定的次数或范围

{m} 匹配前一个字符m次

{m,} 匹配前一个字符至少m次

{m,n} 匹配前一个字符m~n次

{,n} 匹配前一个字符之多n次

#手机号码的匹配

pattern='1[356789]\d{9}'

#至少6个长度的密码

pattern='\w{6,}'

#区号信息

pattern='0\d{2,3}'

正则表达式的案例应用取出字符中所有的天气状态

import re

string = "{ymd:'2018-01-01',tianqi:'晴',aqilnfo='轻度污染'},

{ymd:'2018-01-02',tianqi:'阴~小雨',aqilnfo='优'},

{ymd:'2018-01-03',tianqi:'小雨~中雨',aqilnfo='优'},

{ymd:'2018-01-04',tianqi:'中雨~小雨',aqilnfo='优'}"

print(re.findall("tianqi:'(.*?)'",string))

#.*?组合 防止盲目匹配,非贪婪式搜索

2. 取出所有含O/o字母的单词

import re

string2='Together,we discovered that a free market only thrives when there are rules to

ensure competition and fair play,Our celebration of initiative and enterprise.'

print(re.findall('\w*o\w*',string2,flags=re.I))

3. 将标点符号、数字和字母删除

import re

string3='据悉,这次发运的4台蒸汽冷凝罐属于国际热核聚变实验堆 (ITER)项目的核二级压力设备,先后完成

了压力试验,真空试验、氦气检漏实验,千斤顶试验,吊耳荷载试验,叠装试验等验收试验'

print(re.sub('[,。、a-zA-Z0-9()]',"",string))

4.将每一部分的内容分割开

import re

string4='2室2厅|101.62平|低区/7层|朝南\n 上海未来-浦东-金杨-2005年建'

split=re.split('[-\|\n]',string4) #|代表或,所以要用转义字符\

print(split)

split_strip=[i.strip() for i in split]

print(split_strip)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript | 用户定义函数的一些示例

1) Design a function, print message and assign the function to a variable and print it like a function 1)设计一个功能&#xff0c;打印消息并将该功能分配给变量&#xff0c;然后像打印功能一样打印 <html lang"en"><head><script>functi…

网易 html5,别再想不开做H5了

写这篇文章的时候网易哒哒《饲养手册》H5刷屏了&#xff0c;但我们依旧不建议品牌做H5。H5作为大众传播工具的时代&#xff0c;已经过去了。尽管去年有很多H5曾经刷屏过&#xff0c;但在当时我们就一直跟朋友说&#xff0c;不要再尝试H5了&#xff0c;性价比根本算不过来&#…

python打开word后再关闭再打开出错_用Python写了个程序调用word,运行完后再手动打开word文档就变慢了,这是为啥?...

公司归档文件比较麻烦&#xff0c;于是用Python写了个程序自动归档&#xff0c;运行无错误。但是运行完后问题就来了&#xff0c;自己手动打开word文档时速度变得奇慢&#xff0c;打开一个文档需要1~2min,请各位同仁帮我看看。下为源代码#归档.pyimport osimport refrom win32c…

编程 mcq_MCQ | 8255 PPI(可编程外围接口)

编程 mcqQuestion 1: How many pins does the 8255 PPI IC contains? 问题1&#xff1a;8255 PPI IC包含多少个引脚&#xff1f; 24 24 20 20 32 32 40 40 Answer: d. 40 答案&#xff1a;d。 40 Question 2: In which mode do all the Ports of the 8255 PPI work as Input…

flex 修改生成html,CSS Flex –动画教程

如果一张图片胜过千言万语 —— 那么动画呢&#xff1f; Flex 无法通过文字或静态图像有效地完全解释。为了巩固你对flex的了解&#xff0c;我制作了这些动画演示。注意 overflow: hidden 行为类型是默认值&#xff0c;因为 flex-wrap 还未设置。为了获得更好的想法&#xff0c…

c#c#继承窗体_C#继承能力问题和解答 套装5

c#c#继承窗体1) Which keyword is used to call a superclass constructor from child class? supertopconstbase Answer & Explanation Correct answer: 4base In C#.NET, base keyword is used to call a base class constructor from a derived class. 1)使用哪个关键字…

python php 网站_python php网站

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

陕西2021高考成绩在哪查询,2021陕西高考成绩查询入口

2021陕西高考成绩查询入口2021-05-13 19:38:37文/张敏有很多同学在关注2021年陕西高考成绩的查询方式&#xff0c;为了方便考生们查询成绩&#xff0c;小编整理了陕西高考成绩查询入口&#xff0c;希望对同学们有帮助。2021陕西高考成绩查询通道高考成绩查询过后应该做什么1、了…

Can’t Activate Reporting Services Service in SharePoint

访问sharepoint的reporing service 的报表的时候莫名其妙的报错&#xff1a; The requested service, http://amatltapp02:32843/1dacf49a2f7a4a6daa8db5768539893f/ReportingWebService.svc could not be activated. See the servers diagnostic trace logs for more informat…

scala python_Scala与Python | 哪种编程语言更好

scala pythonScala is a general-purpose programming language developed by Martin Odersky in 2004. Scala是Martin Odersky在2004年开发的通用编程语言。 Both Scala and Python are general purpose programming that is used in Data Science that supports Object Orie…

查找文件中每行第二个单词_日语单词中的长短音区别在哪里,日语长短音发音有什么规律...

日语单词记忆长短音规律一、如果单词的汉字在中文汉语拼音中是前鼻音&#xff0c;在日语读音中就会带拨音「ん」&#xff1b; 如果单词的汉字在中文汉语拼音中是后鼻音&#xff0c;在日语读音中就会带有长音。例&#xff1a;専门&#xff08;zhuan men&#xff09;&#xff0d;…

SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)...

本文出处&#xff1a;http://www.cnblogs.com/wy123/p/6008477.html 关于统计信息对数据行数做预估&#xff0c;之前写过对非相关列&#xff08;单独或者单独的索引列&#xff09;进行预估时候的算法&#xff0c;参考这里。  今天来写一下统计信息对于复合索引在预估时候的计…

计算机三四级网络技术,全国计算机等级考试四级网络技术论述题真题3

1.(2003年)网络安全策略设计的重要内容之一是&#xff1a;确定当网络安全受到威胁时应采取的应急措施。当我们发现网络受到非法侵入与攻击时&#xff0c;所能采取的行动方案基本上有两种&#xff1a;保护方式与跟踪方式。请根据你对网络安全方面知识的了解&#xff0c;讨论以下…

哈密顿路径_检查图形是否为哈密顿量(哈密顿路径)

哈密顿路径Problem Statement: 问题陈述&#xff1a; Given a graph G. you have to find out that that graph is Hamiltonian or not. 给定图G。 您必须找出该图是否为哈密顿量 。 Example: 例&#xff1a; Input: 输入&#xff1a; Output: 1 输出1 Because here is a …

京东自动下单软件_黄牛软件自动下单秒杀商品 警方用科技手段打击

法制日报全媒体记者 张维定了10个闹钟,也抢不到一瓶茅台&#xff1b;等了很久的iPhone新手机,打开网页就秒没……或许并不是因为你的手速、网速慢,而是黄牛党在用软件和你抢商品。近日,在“净网2019”专项行动中,阿里安全协助江苏省南通市公安局成功打掉了一个制作销售黄牛软件…

Mysql基础之DML语句

增 1 给表的所有字段插入数据 INSERT INTO 表名 VALUES(值1&#xff0c;值2&#xff0c;值3&#xff0c;...&#xff0c;值n)&#xff1b; 2 给表的指定字段插入数据 INSERT INTO 表名(属性1&#xff0c;属性2&#xff0c;...&#xff0c;属性n) VALUES(值1&#xff0c;值2&a…

河南招教考试计算机专业知识,河南教师招聘考试《计算机网络技术基础》知识点归纳七...

河南教师招聘考试《计算机网络技术基础》知识点归纳七1.ADSL是非对称数字用户线路&#xff0c;其下行速率为1.5&#xff5e;8 Mb/s&#xff0c;而上行速率则为16&#xff5e;640 kb/s。在一对铜双绞线上的传送距离可达5km左右&#xff0c;可同时上网打电话&#xff0c;互不影响…

Python程序检查字符串是否是回文

What is palindrome string? 什么是回文字符串&#xff1f; A string is a palindrome if the string read from left to right is equal to the string read from right to left i.e. if the actual string is equal to the reversed string. 如果从左至右读取的字符串等于…

content属性的4种用途

content属性浏览器支持情况&#xff0c;兼容到IE8浏览器&#xff0c;IE7及以下不支持用途一、配合:before及:after伪元素插入文本<div><p>伪元素</p> </div>p:before{content:CSS3;color:#4bb;font-weight:bold;margin-right:20px;background:#f0f0f0;…

内蒙古师范大学计算机科学技术学院,内蒙古师范大学计算机科学技术硕士生导师——李成城...

李成城&#xff0c;教授&#xff0c;硕导&#xff0c;1971年7月出生于内蒙古呼伦贝尔盟。2002年9月-2005年7月在北京邮电大学信息工程学院学习&#xff0c;获得工学博士学位&#xff0c;主要研究领域是&#xff1a;自然语言理解、机器学习、图像识别。1993年在内蒙古师范大学计…