第四次任务

  • ?的作用

匹配零次或一次前面的分组

  • 2.区分match对象的groups()、group()、group(1)……

 

  • 完成课本的实例,匹配电话号码和邮箱。
  • 正则表达式的基本模式:

     

import re,pyperclip  导入模块

名称+Regex=re.compile(r'(1)-(2)-(3)')   括号即代表group

较复杂的文本:名称+Regex=re.compile(r'''(

                                                                    (1)    

                                                                    (2) 

                                                                    (3) 

                                                                     )''',自选内容)

自选内容可以是re.IGNOREC ASE(忽略大小写)、re.DOTALL (匹配任意字符)和 re.VERBOSE(忽略正则表达式字符串中的空白符和注释)单独或者组合,用管道符号|来连接,,用以简化文本

    mo.=Regex.Search或findall(需要检索的文本)


细节:

对于需要检索的形式(即放在''内的内容)根据自己的需要而编写代码

文本的缩写字符分类:

/d:     /D:       /w:          /W           /s            /S

也可以创建符合自己要求的字符串:[ 内容 ]。也可以使用短横表示字母或数字的范围。例如,字符分类[a-zA-Z0-9]将匹配所
有小写字母、大写字母和数字。

正则表达式符号: 格式:()+符号

第四次任务

sub()方法替换字符串:需要传入两个参数。第一个参数是一个字符串,用于取代发现的匹配。第二个参数是一个字符串,即正则表达式。sub()方法返回替换完成后的字符串。

可以在正则表达式的开始处使用插入符号(^),表明匹配必须发生在被查找文本开始处。类似地,可以再正则表达式的末尾加上美元符号($),表示该字符串必须以这个正则表达式的模式结束。可以同时使用^和$,表明整个字符串必须匹配该模式,也就是说,只匹配该字符串的某个子集是不够的。(r'^     $')

.(句点)字符称为“通配符”。它匹配除了换行之外的所有字符。

(.*)表示“任意文本”,(.*?)匹配最短的可能文本

匹配模式:

Greedy(贪婪的)re.compile(r'(字符串){3,6}')--匹配的是六个字符串版本

Reluctant(不情愿的)re.compile(r'(字符串){3,6}')--匹配的是三个字符串版本

Possessive(独占的):书里没有,资料找到的

Python 的正则表达式默认是“贪心”的,这表示在有二义的情况下,它们会尽可能匹配最长的字符串。花括号的“非贪心”版本匹配尽可能最短的字符串,即在结束的花括号后跟着一个问号。

 

search()与findall()

search()将返回一个Match对象,包含被查找字符串中的“第一次”匹配的文本,而 findall()方法将返回一组字符串,包含被查找字符串中的所有匹配。