#!/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')


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐