ahjesus 单词单数-复数相互转换C#
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;
}
}
ahjesus 单词单数-复数相互转换C#的更多相关文章
- rails 单数 复数 大写 小写转换 下划线 驼峰命名
downcase 变小写 pluralize 复数 singularize 单数 camelcase 驼峰 underscore : “MyScore”.undersocre ==> my_s ...
- 【English】三、以o结尾单词变复数
一.以O结尾的词,许多加es构成复数,特别是一些常用词如: potatoes 土豆 tomatoes 西红柿 echoes 回声 tornadoes 龙卷风 torpedoes ...
- SQL表名,应该用复数还是单数
用单数形式更佳,理由如下: 1.概念直观. 你有一个袋子,里面有好多个苹果,你会说这是个苹果袋.但无论里面有0,1,百万个苹果,它依然是个袋子.表也是如此,表明需要描述清楚,表里面包含的对象,而非有多 ...
- SQL表名,应该用表对应资源对象的复数形式还是单数形式
原文:http://blog.csdn.net/lizeyang 问题 SQL表名,应该用表对应资源对象的复数形式还是单数形式.例如一个用户表,表名是用user还是users更合适呢? 精华回答 ...
- HDOJ/HDU 1804 Deli Deli(英语单词复数形式~)
Problem Description Mrs. Deli is running the delicatessen store "Deli Deli". Last year Mrs ...
- Atitit. . 软件命名空间与类名命名单词的统计程序设计v2
Atitit. . 软件命名空间与类名命名单词的统计程序设计v2 1. 要实现的目标1 1.1. Camel字符串模式的分词处理1 1.2. 多个大写的处理1 1.3. 数字与字幕的分离1 1.4. ...
- C++实现对文件中各单词词频的统计及其代码优化
先给出github上的代码链接以及项目需求 1.项目概述 这个项目的需求可以概括为:对记事本(txt)文件进行单词的词频统计和排序,排序结果以指定格式输出到默认文件中,并要求能够快速地完成整个统计和结 ...
- photo的复数是photos
以O结尾的单词变复数时,有生命的加es,无生命的加s. 如:photo,zoo,为无生命的,+s tomato,potato为有生命的,+es. 自己总结的,但到目前为止还没有遇到过例外的.记住这一个 ...
- Python3中文教程
搜索 此文档来源自网络 安装 PYTHON❝ Tempora mutantur nos et mutamur in illis. (时光流转,吾等亦随之而变.) ❞ — 古罗马谚语 深入欢迎来到 Py ...
随机推荐
- Servlet Filter
Filter : Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应. 主要用于对HttpServletRequest 进行预处理,也可以对Http ...
- KnockoutJS 3.X API 第四章 表单绑定(7) event绑定
目的 event绑定即为事件绑定,即当触发相关DOM事件的时候回调函数.例如keypress,mouseover或者mouseout等 例如: Mouse over me Details var vi ...
- Java 线程 — AbstractQueuedSynchronizer
锁 锁就是一种状态,比如互斥锁:同一时间只能有一个线程拥有,可以使用一个整型值来标志当前的状态 0:表示没有现成占有锁 1:表示锁已经被占用 AbstractQueuedSynchronizer 实现 ...
- 开发工程师面试的秘密( 整理自 Export C Programming )
开发工程师面试的秘密 因为打算转战linux平台,所以一直在配置自己喜欢的linux操作系统.同时在看那本<C 专家编程>,这本书主要是针对ANSI C 介绍的,所以和Linux(Unix ...
- 快速入门系列--WCF--01基础概念
转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...
- iOS越狱开发(一)
做越狱开发也有一些时间了,有很多东西想总结一下,希望给他人一些借鉴,也是自己对过去开发经历的一些总结.个人不推荐使用盗版,这里主要以技术介绍为主. 这个系列里面主要介绍怎样进行越狱开发,涉及到以下几个 ...
- Entity Framework 5中应用表值函数进行Linq查询
Entity Framework 5引入了表值函数(Table-Valued Functions TVFs).表值函数的返回类型是一个Table类型,可用在SQL查询语句中.最简单的表值函数,读取客户 ...
- php的mysql\mysqli\PDO(一)mysql
原文链接:http://www.orlion.ga/1140/ 工作中数据库的操作都被封装好了,这些怎么用的都快忘了干脆写篇博客重新复习下,以后要是再忘记了可以看这篇文章. PHP 5.5.0 起已废 ...
- CSS3入门之边框与背景
CSS3入门之边框与背景 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !im ...
- 轻松自动化---selenium-webdriver(python) (七)
本节知识点: 多层框架或窗口的定位: switch_to_frame() switch_to_window() 智能等待: implicitly_wait() 对于一个现代的web应用,经常会出现框架 ...