python-正则匹配在python中使用小练习
#!/usr/bin/python# encoding: utf8import redef plural(noun):if re.search('[sxz]$',noun):return re.sub('$','es',noun)elif re.search('[^aeioudgkprt]h$',noun):return re.sub('$','es',noun)el
·
#!/usr/bin/python
# encoding: utf8
import re
def plural(noun):
if re.search('[sxz]$',noun):
return re.sub('$','es',noun)
elif re.search('[^aeioudgkprt]h$',noun):
return re.sub('$','es',noun)
elif re.search('[^aeiou]y$',noun):
return re.sub('y$','ies',noun)
else:
return noun + 's'
print plural('man')
print re.search('[abc]','Mark')
print re.sub('[abc]','o','Mark')
print re.sub('[abc]','o','rock')
print re.sub('[abc]','o','caps')
#--------------------------#
def match_sxz(noun):
return re.search('[sxz]$',noun)
def apply_sxz(noun):
return re.sub('$','es',noun)
def match_h(noun):
return re.search('[^aeioudgkprt]h$',noun)
def apply_h(noun):
return re.sub('$','es',noun)
def match_y(noun):
return re.search('[^aeiou]y$',noun)
def apply_y(noun):
return re.sub('y$','ies',noun)
def match_default(noun):
return True
def apply_default(noun):
return noun + 's'
rules = (
(match_sxz,apply_sxz),
(match_y,apply_y),
(match_h,apply_h),
(match_default,apply_default)
)
def plural2(noun):
for matches_rule, apply_rule in rules:
if matches_rule(noun):
return apply_rule(noun)
print plural2('test')
更多推荐



所有评论(0)