今天我们继续来学习正则表达式re模块,同样还是学习3个内容:二选一和子模式、可选模式和重复模式、字符串的开头和结尾。
(一)二选一模式。需要以不同的方式匹配单个字符时,字符集很好用。但是如果只想匹配字符串'python'和'perl'该怎么办呢?显然,使用字符集是没有办法满足我们的要求的,这时候二选一模式就可以大显身手了。二选一模式使用管道字符'|',匹配以上两个字符的模式可以写成:'python|perl'。有时候,你的需求又进了一步,你不想二选一模式完全的运用于两个字符,只是想用在其中的一部分。为此,可将这部分(子模式)放在小括号内。那么,对于刚才的例子,也可重写为'p(ython|erl)'。
(二)可选模式和重复模式。通过在子模式后加上问号,可将其指定为可选的,即可包含和可不包含。例如,下面这个不太好懂的模式:
只与下面这些字符串匹配:
对于这个示例,需要注意一下几点:
一是我对句点进行了转义,以防它充当通配符。
二是为减少反斜杠的数量,我使用了原始字符串。
三是每个可选的子模式都放在圆括号内。
四是每个可选的子模式都可以出现也可以不出现。
还有几个其它的运算符用于表示子模式可重复多次。
例如:
r'w+\.python\.org'与'w.python.org'匹配,与'.python.org'不匹配。
(三)字符串的开头和末尾。也可查找与模式相匹配的子串。比如字符串'www.python.org'中的'www'与模式'w+'匹配。像这样查找字符串时,有时候从字符串的开头或结尾查找很有用。例如,你可能想确定字符串的开头是否与模式'ht+p'匹配,就可使用脱字符'^'来指出这一点。'^ht+p'与'http://python.org'和'htttttp://python.org'匹配,但与'www.python.org'不匹配。同样,要指定字符串末尾,可使用美元符号'$'。
今天的分享就到这里,大家要多多联系哦。
领取专属 10元无门槛券
私享最新 技术干货