re-正则表达式(二)

今天我们继续来学习正则表达式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'不匹配。同样,要指定字符串末尾,可使用美元符号'$'

今天的分享就到这里,大家要多多联系哦。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181216G0ZPSI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券