正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。

学习内容源自:廖雪峰的官网网站Python3



重点: re.match   re.split   re.compile


匹配适用规则:
技术分享


个人理解:
re.match : 用于对字符串进行整体匹配,并将我们需要的特定部分选择出来。
如:str_ip = "network192.168.0.1gateway192.168.100.1end"
要从str_ip当中筛选出IP地址来

import re
str_ip = "network192.168.0.1gateway192.168.100.1end"
        
m = re.match(r‘\w+?(\d{1,254}.\d{1,254}.\d{1,254}.\d{1,254})\w+‘,str_ip)

 

看看输出:
m.group()  和 m.group(0) 表达的意思相同,仅仅匹配一次,并将匹配出的内容输出

In [213]: m.group()
Out[213]: ‘network192.168.0.1gateway192‘
In [213]: m.group(0)
Out[213]: ‘network192.168.0.1gateway192‘

m.group(1)  表示的意思是,() 小括号内的匹配内容,有多个小括号的话,按照括号顺序向后排序。

In [214]: m.group(1)
Out[214]: ‘192.168.0.1‘

  

这样就匹配出了IP地址,由于我们在规则当中并没有去匹配后面的,所以仅仅输出一个IP。
注意点:m = re.match(r‘\w+?(\d{1,254}.\d{1,254}.\d{1,254}.\d{1,254})\w+‘,str_ip)
注意, \w  表示 一个字符或数字。
             \w+ 表示多个字符或数字
             \w+? 表示先按照后面的规则匹配,在此例子当中,若不加?,会输出什么呢?看一看

import re
str_ip = "network192.168.0.1gateway192.168.100.1end"
         
m = re.match(r‘\w+(\d{1,254}.\d{1,254}.\d{1,254}.\d{1,254})\w+‘,str_ip)

加个问号后,表示按照后面规则优先方式匹配。

In [217]: m.group(1)
Out[217]: ‘2.168.0.1‘

以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

攻破难啃的骨头-正则表达式(转)

正则表达式的贪婪和非贪婪模式