当前位置: 首页 > news >正文

吉林长春新冠疫情最新消息湖南企业竞价优化服务

吉林长春新冠疫情最新消息,湖南企业竞价优化服务,网站优化我自己可以做吗,西安专业网络推广公司学习目录 正则表达式介绍 正则表达式的常用符号 python的re模块 findall()函数 finditer()函数 match()函数 search()函数 split()函数 正则表达式的介绍 Python 通过标准库中的 re 模块来支持正则表达式。 正则表达式作为高级的文本模式匹配、抽取、和搜索。简单地说…

学习目录

正则表达式介绍

正则表达式的常用符号

python的re模块

findall()函数

finditer()函数

match()函数

search()函数

split()函数

正则表达式的介绍

Python 通过标准库中的 re 模块来支持正则表达式。

正则表达式作为高级的文本模式匹配、抽取、和搜索。简单地说,正则表达式(简称为 regex)是一些由字符和特殊符号组成的字符串,按照设定的匹配逻辑能够匹配一系列有相似特征的字符串。

举例:re模块的findall函数在大量的文本信息中找到“3位区号-7位数字”的固定电话号码。

sr = '足看025-2322222,呢023-32322,噢00哦30哦0290231312312' * 5
print(re.findall('\d{3}-\d{7}',sr))
打印结果如下:找到了5个号码
['025-2322222', '025-2322222', '025-2322222', '025-2322222', '025-2322222']

正则表达式的符号介绍

常用到到的表达式符号如下,将不同的符号组合为正则表达式

符号

解释

示例

re1|re2

匹配正则表达式 re1 或者 re2

foo|bar

.

匹配任何字符(除了\n 之外)

b.b

^

匹配字符串起始部分

^Dear

$

匹配字符串终止部分

/bin/*sh$

*

匹配 0 次或者多次前面出现的正则表达式

[A-Za-z0-9]*

+

匹配 1 次或者多次前面出现的正则表达式

[a-z]+\.com

?

匹配 0 次或者 1 次前面出现的正则表达式

goo?

{N}

匹配 N 次前面出现的正则表达式

[0-9]{3}

{M,N}

匹配 M~N 次前面出现的正则表达式

[0-9]{5,9}

[…]

匹配来自字符集的任意单一字符

[aeiou]

[..x−y..]

匹配 x~y 范围中的任意单一字符

[0-9], [A-Za-z]

[^…]

不匹配此字符集中出现的任何一个字符,包括某一范围的字符(如果在此字符集中出现)

[^aeiou], [^A-Za-z0-9]

(*|+|?|{})?

用于匹配上面频繁出现/重复出现符号的非贪婪版本(*、+、?、{})

.*?[a-z]

(…)

匹配封闭的正则表达式,然后另存为子组

([0-9]{3})?,f(oo|

\d

匹配任何十进制数字,与[0-9]一致(\D 与\d 相反,不匹配任何非数值型的数字)

data\d+.txt

\w

匹配任何字母数字字符,与[A-Za-z0-9_]相同(\W 与之相反)

[A-Za-z_]\w+

\s

匹配任何空格字符,与[\n\t\r\v\f]相同(\S 与之相反)

of\sthe

\b

匹配任何单词边界(\B 与之相反)

\bThe\b

\N

匹配已保存的子组 N(参见上面的(…))

price: \16

\c

逐字匹配任何特殊字符 c(即,仅按照字面意义匹配,不匹配特殊含义)

\., \\, \*

\A(\Z)

匹配字符串的起始(结束)(另见上面介绍的^和$)

\ADear

举几个例子:

1 匹配以字母a开头,以字母b结束的中间为任意1个数字

表达式=’^a[0-9]b$’

sr2 = 'a2b'
sr3='acb'
print(re.findall('^a[0-9]b$',sr2))
print(re.findall('^a[0-9]b$',sr3))
#打印结果 字符串sr2符合要求
['a2b']
[]

2 匹配字母s或者字母c出现1到3次

表达式='[s|c]{1,3}'


sr4 = 'a2bsbccs233scacss'
print(re.findall('[s|c]{1,3}',sr4))

3 匹配字母c和f之前的任意字符

表达式=‘c.*f’

sr5='acdfdfb'
print(re.findall('c.*f',sr5))
打印结果:
['cdfdf']

re模块

安装完python后通过import re直接导入使用

re常用函数有match(),search(),findall(),finditer(),split()

findall()函数

findall()函数匹配正则表达式,匹配所有符合条件的数据,并返回一个列表,匹配不上返回为空列表,上面已经有举例,不在次多做介绍。

finditer()函数

finditer()函数与 findall()函数相同,但返回的不是一个列表,而是一个迭代器。对于每一次匹配,迭代器都返回一个match匹配对象


sr = '看025-2322222,设定023-32322,噢00哦30哦0290231312312'
#打印匹配的结果
print(re.finditer('\d{3}-\d{7}',sr))#打印list()函数将迭代器转换为列表并打印
print(list(re.finditer('\d{3}-\d{7}',sr)))#循环迭代器,将match对象通过group()函数打印匹配到内容
for i in re.finditer('\d{3}-\d{7}',sr):if i is not None:print(i.group())else: print('未匹配到对象')
#结果为迭代器
<callable_iterator object at 0x108daa380>
#每个list元素为match对象
[<re.Match object; span=(8, 19), match='025-2322222'>]
#打印match对象的内容
025-2322222

match()函数

match()尝试从字符串的起始部分对模式进行匹配。如果匹配成功,返回一个匹配对象;如果匹配失败,返回 None; 匹配对象的 group()方法用于显示成功的匹配。

sr6 = 'a2bsbccs233scacss'
#表达式‘a{1,3}’从起始位置可以匹配成功
print(re.match('a{1,3}',sr6))#表达式‘2b.*’从起始位置不能匹配成功
print(re.match('2b.*',sr6))打印结果: 第一个可以匹配,第二个为None
<re.Match object; span=(0, 1), match='a'>
None

通过group()方法获取匹配到的内容

print(re.match('a{1,3}',sr6).group())

search()函数

search()方法会在任意位置搜索正则表达式第一次出现的匹配情况(即使可以匹配到多个,也只会获取第一次匹配到的数据)。如果搜索到成功的匹配,会返回一个匹配对象;否则,返回 None。

比如上面的例子
sr6 = 'a2bsbccs233scacss'
print(re.search('233.*',sr6).group())
#打印结果
233scacss

虽然从字符串一开始匹配不到,但是通过搜索在中间位置可以找到匹配的对象,然后通过group()方法获取匹配到的内容。

在正则表达式中加入括号(),进行分组,获取分组内的内容。

比如下面表达式'233(.*)c(.*)',添加了两个分组,通过group(1)和group(2)获取相应内容

print(re.search('233(.*)c(.*)',sr6).group(1))
print(re.search('233(.*)c(.*)',sr6).group(2))
#打印结果
sca
ss

split()函数

split()函数在正则表达式匹配到内容后,将其他未匹配的内容分割为列表,可支持最大分割次数,类似与字符串str.split()方法。

sr7 = '1234a2344b555556d556677'
#将匹配到字母以为的其他内容分割为一个列表
print(re.split('[a-z]',sr7))
#打印结果
['1234', '2344', '555556', '556677']

参数添加maxsplit次数后

print(re.split('[a-z]',sr7,maxsplit=2))
#打印结果
['1234', '2344', '555556d556677']

----感谢读者的阅读和学习,谢谢大家。

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

http://www.ds6.com.cn/news/70038.html

相关文章:

  • 网站建设推介网络市场营销
  • 保定免费做网站阿里巴巴国际站
  • 锦屏县城乡和建设局网站seo方法
  • 网站建设背景谷歌浏览器安卓版
  • 金华做网站的公司在线一键生成网页
  • 做二手手机交易网站推广是做什么工作的
  • 固定ip如何做网站服务器个人主页网页设计
  • 网站建设费大概多少钱新闻营销发稿平台
  • 做网站如何网站考虑优化外贸网站模板
  • web网站开发源码下载seo搜索优化怎么做
  • wordpress 做wikii宁波seo快速优化课程
  • 泰安公司网站开发新品牌推广策划方案
  • 让人做网站需要准备什么条件企业网络营销
  • 怎么做qq刷赞网站seo关键词如何布局
  • 注册资金多少有什么区别汕头搜索引擎优化服务
  • 小学生简短小新闻十条东莞网站关键词优化排名
  • 制作旅游网站设计概述百度关键词搜索指数
  • 中国网站模板下载网站ip查询
  • 广州推广型网站建设品牌推广是做什么的
  • 企业微信官网厦门关键词排名seo
  • 推荐武汉网站建设南京seo关键词排名
  • 一流本科专业建设网站自助建站模板
  • 八方建设集团有限公司网站semester at sea
  • 视频教做家常菜的网站电商平台推广公司
  • 福建嘉瑞建设工程有限公司网站百度推广登陆
  • 哪里可以兼职答题重庆seo快速优化
  • 苏州做网站的企业百度应用搜索
  • 简单做动画的网站官网seo是什么意思
  • 厦门网站建设公司电话电商网络推广是什么
  • 泉做网站的公司网络流量统计工具