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

做天猫转让网站杭州seook优屏网络

做天猫转让网站,杭州seook优屏网络,app网站制作,初中学生做那个的网站学习目录 正则表达式介绍 正则表达式的常用符号 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.dinnco.com/news/21789.html

相关文章:

  • 夹江企业网站建设报价孔宇seo
  • 宁波市有哪些网站建设公司网站案例分析
  • 网站建设平台杭州职业技能培训网
  • 如何建设成为营销网站ciliba最佳磁力搜索引擎
  • 视频制作网站素材湛江百度网站快速排名
  • 北京网站整站优化域名信息查询网站
  • 2020给个免费网站好人有好报西安企业seo外包服务公司
  • 制作公司的网站福建seo推广方案
  • 免费制作生日网页seo平台有哪些
  • 怎样做后端数据传输前端的网站今日重大新闻头条财经
  • 做网站二维码经典营销案例分析
  • wordpress 加上广告广西壮族自治区在线seo关键词排名优化
  • 濮阳做网站 汉狮网络北大青鸟培训机构官网
  • 沧州商城网站建设整合营销传播的六种方法
  • 微信菜单怎么做微网站软文营销的本质
  • 泰安网站优化推广百度移动端点赞排名软件
  • 网站建设后期高端网站定制
  • 日本做的视频网站有哪些问题嵌入式培训机构哪家好
  • 网站管理 上传模板p2p万能搜索种子
  • 做网站定金交多少合适岳阳网站界面设计
  • 世界摄影网站seo竞价推广
  • 低价网站建设方案产品软文是什么意思
  • 免费公司网站建设最近国际新闻大事20条
  • 百度做网站教程seo顾问推推蛙
  • 中国工程建设领域网站免费域名注册平台
  • 白云做网站的公seo网站排名优化快速排
  • 网络诚信 网站应怎么做长春seo快速排名
  • 企业建站业务还能做吗搜狗seo查询
  • 重庆企业网站推广方案微信广告平台
  • asp网站图片不显示竞价服务托管价格