菜鸟教程 python 正则表达式,python正则表达式或者用法

  菜鸟教程 python 正则表达式,python正则表达式或者用法

  文章目录

  0、前言1、正则表达式模式2、正则表达式修饰符-可选标志2.1、` re.ignore case` (`re.i`) 2.2、` re.ascii` (`re.a`) 2.3、` re.dotall` (`re.s`) 2.4、` 2.6。修改器3的叠加。正则表达式函数3.1。示例3.1.1示例3 . 1 . 2 3.1.33.2用于查找单个匹配项,示例3.2.13.3用于查找多个匹配项,以及分区示例3.3.1导入0、前言.

  本笔记是在菜鸟教程和知乎教程的基础上,融入了自己的一些学习经验。

  1、正则表达式模式

  亮点是我的补充,因为可以根据实际情况搭配。

  我在这里很懒。我直接把菜鸟教程的图剪了。

  2、正则表达式修饰符 - 可选标志

  2.1、re.IGNORECASE(re.I)

  虽然第1节是一个常数,但我们必须先简单提一下函数re.findall,因为它是贯穿这一节的函数。关于。find all (pattern,string,flag=0):从字符串中的任意位置查找并返回一个列表。Pattern是要匹配的字符(字符串),string是搜索源,flag是修饰符,默认值为0。

  re的作用。我是忽略字符的大小写。

  我是茉莉-冯。我的学号是321432号 pattern=r jasmine-FENG print( default : ,re.findall(pattern,Text)) print(忽略大写/小写: ,re .find all(模式,文本,标志=re。i)) N.B. pattern被赋予一个r字符串.这个R字符串的作用是避免转义。r是raw的缩写,意思是保持原样。但是看看这篇博文。一般来说,在使用正则表达式的时候会用到这个R字符串。

  : []忽略大写/小写3360[ jasmine-fENG;]过程结束,默认退出代码为0,区分大小写,找不到eng如果没有,可以找eng。

  2.2、re.ASCII(re.A)

  re的作用。a是只匹配ASCII码支持的字符,那么具体指哪些字符呢?下图来自百度百科。

  汉字不在此,所以如果修饰语是re。a,比不上汉字~

  我是茉莉-冯。我的学号是321432号 pattern=r \ w print(默认3360 ,re。findall (pattern,text)) print (ascii 3360 ,re。findall (pattern,text,flags=)

  Default: [我是茉莉,冯,我的学号是

  39;, '321432']ASCII: ['Jasmine', 'Feng', 'No', '321432']Process finished with exit code 02.3、re.DOTALLre.S

  在正则表达式模式中,.是用来

  

text = "我\t是Jasmine-F\neng. 我%的◉学号是No. 321432"pattern = r'.*'print('Default: ', re.findall(pattern,text))print('DOTALL: ', re.findall(pattern,text,re.S))
.*的作用是匹配长度至少为0的字符(串),emmm,好像是句废话?事实上,只要整段话不被换行符截断,就可以得到整个字符串(外加一个空字符串)。

  

Default: ['我\t是Jasmine-F', '', 'eng. 我%的◉学号是No. 321432', '']DOTALL: ['我\t是Jasmine-F\neng. 我%的◉学号是No. 321432', '']Process finished with exit code 0
2.4、re.MULTILINE(re.M)

  $匹配定位到字符串末尾,^定位到字符串开头,默认情况下,如果换行,是不能定位到新一行的行头/尾的,而用re.M修饰则可以,也就是多行模式。

  

text = "我\t是Jasmine-F\neng. 我%的◉\n学号是No. 321432"pattern = r'.$'pattern2 = r'^.'print('Default, end: ', re.findall(pattern, text))print('MULTILINE, end: ', re.findall(pattern, text, re.M))print('Default, start: ', re.findall(pattern2, text))print('MULTILINE, start: ', re.findall(pattern2, text, re.M))
Default, end: ['2']MULTILINE, end: ['F', '◉', '2']Default, start: ['我']MULTILINE, start: ['我', 'e', '学']Process finished with exit code 0
2.5、re.VERBOSE(re.X)

  verbose是“详实的、冗长的”意思,通过该修饰符可以在正则表达式中加入注释。注意,是往pattern里面加,不是往text加!我一开始以为是可以往text加注释,然后调试半天都得不到结果。。。

  

text = '朋友们好啊!我是xxxxxx拳掌门人xxx~'pattern = r'''朋友们 # 主语

   好啊! # 谓语

   '''print(re.findall(pattern, text,re.VERBOSE))

['朋友们好啊!']Process finished with exit code 0
2.6、修饰符的叠加

  使用可以叠加修饰。

  

text = 'Hello everybody!\n我是xxxxxx拳掌门人xxx~'pattern = r'BODY.*$'print(re.findall(pattern, text, re.I))print(re.findall(pattern, text, re.M))print(re.findall(pattern, text, re.M re.I))
[][]['body!']Process finished with exit code 0
3、正则表达式函数

  3.1、查找单个匹配项的函数

  函数功能search从任意位置开始搜索match从开头搜索,不用完全匹配fullmatch从开头搜索,必须完全匹配其实我本来是写了自己的例子的,但是浏览器给我误关了,又没保存(心态直接炸裂以上就是笔记之 Python正则表达式的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: