2.2 常用量词

2018-12-11  本文已影响9人  马小跳_

{m,n}是通用形式的量词,正则表达式还有三个常用量词,分别是+?*。它们的形态虽然不同于{m,n},功能却是相同的(也可以把它们理解为“量词简记法”)。

表2-2 常用量词

常用量词 等价形式 说明
* {0,} 可能出现,也可能不出现,出现次数无上限
+ {1,} 至少出现一次,无上限
? {0,1} 至多出现一次,也可能不出现

在实际应用中,在很多情况下只需要表示这三种意思,所以常用量词的使用频率远高于{m,n}

比如说英式英语和美式英语有些单词的写法是不同的,比如traveler和traveller。如果希望“通吃”这两种写法,就要求第二个l是“至多出现一次,也可能不出现”,正好使用量词?。这样的情况还有很多,比如favor和favour、color和colour...

例2-4 量词?的应用

re.search(r'travell?er', 'traveler') is not None  # True
re.search(r'travell?er', 'traveller') is not None  # True

例2-5 量词+的应用

re.search(r"^<[^>]+>", "<bold>") != None  # 匹配开标签
re.search(r"^</[^>]+>", "</table>") != None  # 匹配闭标签
re.search(r"^<[^>]+/>", "<br/>") != None  # 匹配自闭合标签

可以中正则表达式匹配双引号字符串。两个双引号之间可以没有任何字符,""也是一个合法的双引号字符串。

例2-6 量词*的应用

re.search(r'\"[^\"]*\"', '"some"')
re.search(r'\"[^\"]*\"', '""')

表2-3 各类tag的匹配

tag分类 正则表达式 举例
open tag <[^/>][^>]*> <div>
close tag </[^>]+> </div>
self-closing tag <[^>/]+/> <br/>
上一篇下一篇

猜你喜欢

热点阅读