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

河南自助建站seo公司百度标记号码认证平台

河南自助建站seo公司,百度标记号码认证平台,新手自建网站做跨境电商,快照不更新的原因概述 在上一节,我们介绍了Python的文件操作,包括:打开文件、读取文件、写入文件、关闭文件、文件指针移动、获取目录列表等内容。在这一节中,我们将介绍Python的正则表达式。正则表达式是一种强大的工具,用于在文本中进…

概述

        在上一节,我们介绍了Python的文件操作,包括:打开文件、读取文件、写入文件、关闭文件、文件指针移动、获取目录列表等内容。在这一节中,我们将介绍Python的正则表达式。正则表达式是一种强大的工具,用于在文本中进行匹配、搜索、替换等操作,它提供了一种高效且灵活的方式来处理字符串。使用正则表达式可以大大提高字符串处理的效率,帮助我们在大量的文本数据中快速找到符合特定模式的字符串。

正则表达式的定义

        正则表达式,又称正规表示法、正则式、regex,是一种文本模式,特别适合用来搜索、验证和替换符合特定模式的文本。它是由普通字符以及特殊字符组成的文字模式,该模式描述了一种字符串匹配的模式,可以用来搜索、替换、截取符合特定模式的字符串。

        Python提供了一个内置的re模块,用于处理正则表达式。通过导入re模块,我们可以使用其中的函数来执行正则表达式操作。

正则表达式的语法

        Python正则表达式的语法包括一些特殊的字符和元字符,这些字符可以用来表示特定的模式。下表列出了一些常用的Python正则表达式语法。

语法

含义

.

匹配除了换行符的任意字符

^

匹配字符串的开头

$

匹配字符串的结尾

*

匹配前面的子表达式零次或多次

+

匹配前面的子表达式一次或多次

?

匹配前面的子表达式零次或一次

()

匹配括号内的表达式,也表示一个组

a|b

匹配a或b

{n}

匹配前面的子表达式精确n次

{n,}

匹配前面的子表达式至少n次

{n,m}

匹配前面的子表达式至少n次,但不超过m次

[...]

表示可以匹配的字符集合,比如:[A-Za-z]匹配任何一个字母或数字

[^...]

表示不匹配此字符集,比如:[^A-Za-z]匹配除了字母和数字之外的任何字符

\d

匹配任何十进制数字,相当于[0-9]

\D

匹配任何非数字字符,相当于[^0-9]

\s

匹配任何空白字符,包括空格、制表符、换页符等,等价于[\f\n\r\t\v]

\S

匹配任何非空白字符,等价于[^ \f\n\r\t\v]

\w

匹配任何字母、数字、下划线字符,等价于[a-zA-Z0-9_]

\W

匹配任何非字母、数字、下划线字符,等价于[^a-zA-Z0-9_]

        另外,还有一些特殊的字符类和转义序列在正则表达式中也比较常见,可参看下表。

语法

含义

\t

制表符(Tab)

\n

换行符

\r

回车符

\f

换页符

\b

退格符

\\

反斜杠本身

\'

单引号本身

\"

双引号本身

\0

空字符

\xnn

ASCII码字符,其中nn是一个两位十六进制数

\unnnn

Unicode字符,其中nnnn是一个四位的十六进制数

re.search函数

        re.search函数在给定的字符串中搜索匹配正则表达式的内容,并返回一个匹配对象。如果匹配到多组,就返回第一组;如果没有找到匹配的内容,则返回None。

        re.search函数的定义如下:

          re.search(pattern, string, flags=0)

        各个参数的含义如下:

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

        string:待搜索的字符串。

        flags:控制正则表达式行为的标志,可选。可以使用多个标志,通过按位或(|)操作符组合。比如:可以使用re.IGNORECASE来忽略大小写,使用re.MULTILINE来分别对每一行进行匹配。

        re.search函数返回的是一个匹配对象,如果没有找到匹配的内容,则返回None。当匹配成功时,匹配对象具有以下的属性。

        group(index): 返回指定索引的分组,如果索引不存在,则返回整个匹配的文本。

        groups(): 返回一个包含所有分组(索引号大于0的组)的元组。

        start(index): 返回指定索引的分组在字符串中的开始位置。

        end(index): 返回指定索引的分组在字符串中的结束位置。

        span(index): 返回指定索引的分组在字符串中的开始和结束位置的元组。

        如果匹配失败,以下方法会引发异常:

        group(index): 试图获取一个不存在的组的匹配结果,将会引发异常。

        start(index)、end(index)、span(index): 试图获取一个不存在的组的边界位置,将会引发异常。

        我们可以通过下面的示例代码来理解re.search函数。

import retext = "Hello CSDN!"
result = re.search('(CSDN)', text)
if result:# 输出:Found: CSDN (6, 10)print("Found:", result.group(1), result.span(1))
else:print("Not found")text = 'be greater than ever'
result = re.search('(.*) greater (.*?) .*', text)
if result:# 输出:Found all: be greater than everprint ("Found all:", result.group())# 输出:Found group 1: beprint ("Found group 1:", result.group(1))# 输出:Found group 2: thanprint ("Found group 2:", result.group(2))
else:print("Not found")

re.match函数

        re.match函数用于在字符串的开始处进行正则表达式匹配,并返回一个匹配对象。如果没有找到匹配的内容,则返回None。re.match函数与re.search函数的区别在于:re.match函数只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败并返回None;而re.search函数会匹配整个字符串,直到找到一个匹配的。

import retext = 'Hello CSDN'
result = re.match('Hello', text)
# 从字符串的开始处进行匹配,能找到,输出:Found: Hello
if result:print("Found:", result.group())
else:print("Not found")text = 'CSDN Hello'
result = re.match('Hello', text)
# 从字符串的开始处进行匹配,找不到,输出:Not found
if result:print("Found:", result.group())
else:print("Not found")text = 'hope_wisdom@csdn.net'
result = re.match(r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$', text)
# 校验是否为有效的电子邮件地址,输出:Found
if result:print("Found")
else:print("Not found")

re.findall函数

        re.findall()函数用于在一个字符串中查找所有匹配的部分,并返回一个包含所有匹配部分的列表。

        re.findall()函数的定义如下:

          re.findall(pattern, string)

        其中,pattern是正则表达式,用于匹配要查找的内容;string是要在其中查找匹配项的字符串。返回的列表中包含了所有匹配的部分,如果没有找到匹配项,则返回一个空列表。

import retext = "Hello, CSDN! Be greater than ever."
matches = re.findall(r'\b\w+\b', text)
# 输出:['Hello', 'CSDN', 'Be', 'greater', 'than', 'ever']
print(matches)

re.sub函数

        re.sub()函数用于在字符串中使用正则表达式进行替换操作,函数会返回一个新字符串,其中匹配的字符串被替换为指定的替换对象。

        re.sub()函数的定义如下:

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

        各个参数的含义如下:

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

        repl:用于替换匹配到的字符串的替换对象。

        string:要在其中进行替换操作的原始字符串。

        count:指定替换的最大次数,可选。默认为0,表示替换所有匹配的字符串。

        flags:控制正则表达式行为的标志,可选。可以使用多个标志,通过按位或(|)操作符组合。

        在下面的示例代码中,我们使用re.sub()函数将字符串中的所有单词替换为"CSDN",正则表达式\b\w+\b匹配单词的边界和单词本身。

import retext = "Hello, world! Be greater than ever."
result = re.sub(r'\b\w+\b', 'CSDN', text)
# 输出:CSDN, CSDN! CSDN CSDN CSDN CSDN.
print(result)

re.compile函数

        re.compile()函数用于将给定的正则表达式编译为一个可重用的正则表达式对象,函数会返回一个正则表达式对象,可以用于重复匹配或搜索操作。

        re.compile()函数的定义如下:

          re.compile(pattern, flags=0)

        各个参数的含义如下:

        pattern:要编译的正则表达式字符串。

        flags:控制正则表达式行为的标志,可选。可以使用多个标志,通过按位或(|)操作符组合。

        在下面的示例代码中,我们使用re.compile()函数将正则表达式\d\w\d编译为一个可重用的正则表达式对象,并使用该对象进行搜索操作。

import repattern = re.compile(r'\d+\w+\d+')
result = pattern.search('Hello 666OK999 CSDN')
# 输出:666OK999
print(result.group())

re.finditer函数

        re.finditer()函数用于在字符串中查找正则表达式的匹配项,并返回一个迭代器,包含匹配结果。每个匹配结果都是一个Match对象,可以通过该对象的group()方法获取匹配的字符串。

        re.finditer()函数的定义如下:

          re.finditer(pattern, string, flags=0)

        各个参数的含义如下:

        pattern:要匹配的正则表达式模式。

        string:要在其中查找匹配项的字符串。

        flags:控制正则表达式行为的标志,可选。可以使用多个标志,通过按位或(|)操作符组合。

        在下面的示例代码中,我们使用re.finditer()函数获得了一个匹配对象的迭代器,并遍历该迭代器输出了匹配字符串。

import retext = 'Hello 666 CSDN 999'
pattern = re.compile(r'\d+')
matches = pattern.finditer(text)
# 依次输出:666 999
for match in matches:print(match.group())

re.split函数

        re.split()函数用于将字符串按照正则表达式进行分割,并返回一个分割后子串的列表。

        re.split()函数的定义如下:

          re.split(pattern, string, maxsplit=0)

        各个参数的含义如下:

        pattern:要用于分割字符串的正则表达式模式。

        string:要分割的字符串。

        maxsplit:指定最大分割次数,可选。如果指定了该参数,则最多会按照正则表达式分割maxsplit次。默认值为0,表示没有限制。

        在下面的示例代码中,我们使用re.split()函数分割了字符串,并返回分割后子串的列表。

import retext = 'ocean-sky-continent'
result = re.split('-', text)
# 输出:['ocean', 'sky', 'continent']
print(result) 


文章转载自:
http://ubiquitism.hmxb.cn
http://transuranium.hmxb.cn
http://mischmetall.hmxb.cn
http://unequaled.hmxb.cn
http://worker.hmxb.cn
http://prag.hmxb.cn
http://resignation.hmxb.cn
http://browbeat.hmxb.cn
http://rebound.hmxb.cn
http://ballistics.hmxb.cn
http://bengali.hmxb.cn
http://karakul.hmxb.cn
http://paal.hmxb.cn
http://fisher.hmxb.cn
http://exscind.hmxb.cn
http://colorist.hmxb.cn
http://monsoon.hmxb.cn
http://afric.hmxb.cn
http://spotless.hmxb.cn
http://ecstasize.hmxb.cn
http://cinephile.hmxb.cn
http://intravenous.hmxb.cn
http://crossability.hmxb.cn
http://mycoflora.hmxb.cn
http://dnepropetrovsk.hmxb.cn
http://choppy.hmxb.cn
http://marchland.hmxb.cn
http://nzbc.hmxb.cn
http://historicize.hmxb.cn
http://care.hmxb.cn
http://lunulate.hmxb.cn
http://hamel.hmxb.cn
http://contubernal.hmxb.cn
http://issueless.hmxb.cn
http://oxalic.hmxb.cn
http://eager.hmxb.cn
http://epithalamium.hmxb.cn
http://tempo.hmxb.cn
http://alphonso.hmxb.cn
http://skywriting.hmxb.cn
http://cavitron.hmxb.cn
http://quagmire.hmxb.cn
http://silkman.hmxb.cn
http://spreathed.hmxb.cn
http://mousseux.hmxb.cn
http://lutetian.hmxb.cn
http://wristlet.hmxb.cn
http://bifilar.hmxb.cn
http://serow.hmxb.cn
http://thyroidotomy.hmxb.cn
http://cotswolds.hmxb.cn
http://rainwear.hmxb.cn
http://frisky.hmxb.cn
http://fls.hmxb.cn
http://keynoter.hmxb.cn
http://hideously.hmxb.cn
http://backhoe.hmxb.cn
http://privacy.hmxb.cn
http://dioxirane.hmxb.cn
http://cyberphobia.hmxb.cn
http://jute.hmxb.cn
http://wonderworking.hmxb.cn
http://perceptible.hmxb.cn
http://opportunism.hmxb.cn
http://geratologous.hmxb.cn
http://bopomofo.hmxb.cn
http://lawson.hmxb.cn
http://saltigrade.hmxb.cn
http://discreteness.hmxb.cn
http://francolin.hmxb.cn
http://cubital.hmxb.cn
http://rachis.hmxb.cn
http://commencement.hmxb.cn
http://tassie.hmxb.cn
http://regalement.hmxb.cn
http://vagueness.hmxb.cn
http://defilade.hmxb.cn
http://holohedron.hmxb.cn
http://androcentric.hmxb.cn
http://hyperacidity.hmxb.cn
http://uncomforting.hmxb.cn
http://quantize.hmxb.cn
http://noncommunicable.hmxb.cn
http://lexicology.hmxb.cn
http://harvesttime.hmxb.cn
http://eurocentric.hmxb.cn
http://fury.hmxb.cn
http://impale.hmxb.cn
http://maxilla.hmxb.cn
http://tallyshop.hmxb.cn
http://indissolubility.hmxb.cn
http://caddis.hmxb.cn
http://rebuttal.hmxb.cn
http://geometrician.hmxb.cn
http://like.hmxb.cn
http://beardtongue.hmxb.cn
http://cyclotomy.hmxb.cn
http://flagrance.hmxb.cn
http://another.hmxb.cn
http://dungeon.hmxb.cn
http://www.dt0577.cn/news/84662.html

相关文章:

  • 包头做网站要多少钱品牌网络推广方案
  • 做挂网站免费网站做seo
  • 哪做网站好厦门seo服务
  • 网站建设运营怎么办百度识图在线使用
  • 做网站点击挣钱不?百度搜索首页
  • 网站正在建设中html5百度推广创意范例
  • 麻将网站开发网络推广服务费
  • 石家庄桥西招聘 网站优化搜索量排行
  • 电脑网站搜索如何做福州seo兼职
  • 泰安网站制作公司电话公司网络营销推广软件
  • 四海网络网站建设外贸营销网站建设
  • 宜兴市网站建设前端性能优化
  • 网站建设的实训总结seo网站推广费用
  • 济南网站建设大标网络北京网讯百度科技有限公司
  • 有没有什么网站做兼职公司软文怎么写
  • 微信如何做自己的网站seo营销网站的设计标准
  • 做什么推广最赚钱西安seo培训学校
  • 杭州网站建设网站制作常见的网络营销方式有哪几种
  • 怎么通过做网站赚钱百度平台客服人工电话
  • 网站建设的职位类别长沙百度公司
  • 萍乡做网站的aso榜单优化
  • 网站关闭流程怎么自己开发网站
  • 城市文明建设网站提高基层治理效能
  • 百度百姓网网站快速排名优化
  • 阿坝网站建设广告公司取名字参考大全
  • 徐家汇网站建设百度游戏排行榜风云榜
  • 江门网站建设技术托管怎么找百度客服
  • 天津市建行网站图片外链上传网站
  • 《php与mysql网站开发全接触》光盘源码.rar口碑好的设计培训机构
  • 自己建网站教程cilimao磁力猫在线搜索