ahjesus 单词单数-复数相互转换C#

看codesmith内置的模板在生成存储过程的时候有单复数的转换,用相同的函数名实现了一个
public static class StringUtil

    {

        /// <summary>

        /// 单词变成单数形式

        /// </summary>

        /// <param name="word"></param>

        /// <returns></returns>

        public static string ToSingular(string word)

        {

            Regex plural1 = new Regex("(?<keep>[^aeiou])ies$");

            Regex plural2 = new Regex("(?<keep>[aeiou]y)s$");

            Regex plural3 = new Regex("(?<keep>[sxzh])es$");

            Regex plural4 = new Regex("(?<keep>[^sxzhyu])s$");



            if (plural1.IsMatch(word))

                return plural1.Replace(word, "${keep}y");

            else if (plural2.IsMatch(word))

                return plural2.Replace(word, "${keep}");

            else if (plural3.IsMatch(word))

                return plural3.Replace(word, "${keep}");

            else if (plural4.IsMatch(word))

                return plural4.Replace(word, "${keep}");



            return word;

        }

        /// <summary>

        /// 单词变成复数形式

        /// </summary>

        /// <param name="word"></param>

        /// <returns></returns>

        public static string ToPlural(string word)

        {

            Regex plural1 = new Regex("(?<keep>[^aeiou])y$");

            Regex plural2 = new Regex("(?<keep>[aeiou]y)$");

            Regex plural3 = new Regex("(?<keep>[sxzh])$");

            Regex plural4 = new Regex("(?<keep>[^sxzhy])$");



            if (plural1.IsMatch(word))

                return plural1.Replace(word, "${keep}ies");

            else if (plural2.IsMatch(word))

                return plural2.Replace(word, "${keep}s");

            else if (plural3.IsMatch(word))

                return plural3.Replace(word, "${keep}es");

            else if (plural4.IsMatch(word))

                return plural4.Replace(word, "${keep}s");



            return word;

        }

    }

你可能感兴趣的:(C#)