文档详情

Python程序设计课件 第六章 正则表达式.pptx

发布:2025-03-07约1.93千字共24页下载文档
文本预览下载声明

;本章知识点导图;元字符;字符;x|y;【例6-1】在文本“eamil120487362@1234”中找出Email,匹配模式为:

\b[\w.%+-]+@[\w.-]+\.[a-zA-Z]{2,4}\b

具体的表达式解析如下图所示。;如果要在正则表达式中使用元字符本身的意义,例如想搜索字符串中的“?”,那么需要对元字符“?”进行转义,使用的方法是把一个反斜杠(\)放在元字符前面,这样元字符就失去了其特殊的意义,还原回它本身代表的字符意义。

当在正则表达式中某个元字符前面放置了一个反斜杠时,就表示反斜杠去掉了元字符的特殊意义,使字符代表其本身的含义。但如果在某个正则表达式中看到字母数字前面有一个反斜杠时,这样的反斜杠用于创建元符号。元符号提供了某些正则表达式元字符的简写方式。;例如要提取这些书合计79.8000万元还是79.0000万元中的数字,可以用如下的匹配模式:

(\d{2}\.\d{1,2}0?)

\d{2}表示匹配两位数字

\.表示匹配小数点号,由于点号是元字符,所以这里要加\转义

\d{1,2}表示匹配一到两位数字

0?表示匹配0的次数为0到1次,结果为0或者00

所以上式最终匹配的结果为79.800和79.000。

在正则表达式中还经常出现以下两种组合:;In[4]:a=xxIxxjshdxxlovexxsffaxxpythonxx

???...:re.findall(xx(.*?)xx,a)

Out[4]:[I,love,python]

?

In[5]:a=xxIxxjshdxxlovexxsffaxxpythonxx

???...:re.findall(xx(.*)xx,a)

Out[5]:[Ixxjshdxxlovexxsffaxxpython];Python中的正则表达式模块re提供了match()、search()和findall()等方法处理字符串。;In[1]:importre

???...:s=没有一种工作是钱多事少离家还近,钱多事少的工作是没有的。

???...:pat=钱多事少

???...:res_1=re.match(pat,s)

???...:print(res_1)

None;In[3]:res_2.span()

Out[3]:(0,2)

?

In[4]:res_2.group()

Out[4]:没有;search()方法;findall()方法;In[5]:print(re.findall(ra.*b,str))#符号.*贪婪模式,匹配从.*前面为开始到后面为结束的所有内容

[aabbabaabbaac2.b]

?

In[6]:print(re.findall(ra.*?b,str))#符号.*?非贪婪模式,遇到开始和结束就进行截取,因此截取多次符合的结果,中间??有字符也会被截取

[aab,ab,aab,aac2.b]

?

In[7]:print(re.findall(ra(.*?)b,str))#符号(.*?)与上面一样,但仅只保留括号的匹配出来的内容

[a,,a,ac2.];查找替换re.sub();使用%符号进行格式化;In[2]:name1=Bigben

???...:print(Hesaidhisnameis%d.%name1)#%d表示展位数值,但name1为字符型,返回错误

Traceback(mostrecentcalllast):

?

Fileipython-input-1-d3549f33c4f0,line2,inmodule

print(Hesaidhisnameis%d.%name1)

?

TypeError:%dformat:anumberisrequired,notstr;format()格式化;In[3]:print({1}今天{0}.format(拍视频,陈某某))#通过位置格式化

陈某某今天拍视频

?

In[4]:print({0}今天{1}.format(陈某某,拍视频))

陈某某今天拍视频;(3)精度和f类型。

小数位数的精度常和浮点型f类型一起使用。;(5)千分位分隔符。

这种情况只针对数值型。;实践

显示全部
相似文档