当前位置:嗨网首页>书籍在线阅读

12-用加号匹配一次或多次

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.3.5 用加号匹配一次或多次

* 意味着“匹配零次或多次”,+(加号)则意味着“匹配一次或多次”。星号不要求分组出现在匹配的字符串中,但加号不同,加号前面的分组必须“至少出现一次”。这不是可选的。在交互式环境中输入以下代码,把它和前一小节的星号正则表达式进行比较:

>>> batRegex = re.compile(r'Bat(wo)+man')
>>> mo1 = batRegex.search('The Adventures of Batwoman')
>>> mo1.group()
'Batwoman'
>>> mo2 = batRegex.search('The Adventures of Batwowowowoman')
>>> mo2.group()
'Batwowowowoman'
>>> mo3 = batRegex.search('The Adventures of Batman')
>>> mo3 == None
True

正则表达式 Bat(wo)+man 不会匹配字符串 'The Adventures of Batman' ,因为加号要求 wo 至少出现一次。

如果需要匹配真正的加号字符,在加号前面加上倒斜杠实现转义,即 +