php英语单词出现了几次,PHP如何实现英语单词 单复数 转换?

提供一个单数转复数的函数给你:

/**

* 单词单数转成复数

* @param $string 单词单数

*/

function pluralize( $string )  {

$plural = array(

array( '/(quiz)$/i',       "$1zes"  ),

array( '/^(ox)$/i',        "$1en"  ),

array( '/([m|l])ouse$/i',     "$1ice"  ),

array( '/(matr|vert|ind)ix|ex$/i',"$1ices" ),

array( '/(x|ch|ss|sh)$/i',    "$1es"  ),

array( '/([^aeiouy]|qu)y$/i',   "$1ies"  ),

array( '/([^aeiouy]|qu)ies$/i',  "$1y"   ),

array( '/(hive)$/i',       "$1s"   ),

array( '/(?:([^f])fe|([lr])f)$/i',"$1$2ves" ),

array( '/sis$/i',         "ses"   ),

array( '/([ti])um$/i',      "$1a"   ),

array( '/(buffal|tomat)o$/i',   "$1oes"  ),

array( '/(bu)s$/i',        "$1ses"  ),

array( '/(alias|status)$/i',   "$1es"  ),

array( '/(octop|vir)us$/i',    "$1i"   ),

array( '/(ax|test)is$/i',     "$1es"  ),

array( '/s$/i',          "s"    ),

array( '/$/',           "s"    )

);

$singular = array(

array("/s$/",        ""),

array("/(n)ews$/",     "$1ews"),

array("/([ti])a$/",     "$1um"),

array("/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/",  "$1$2sis"),

array("/(^analy)ses$/",   "$1sis"),

array("/([^f])ves$/",    "$1fe"),

array("/(hive)s$/",     "$1"),

array("/(tive)s$/",     "$1"),

array("/([lr])ves$/",    "$1f"),

array("/([^aeiouy]|qu)ies$/","$1y"),

array("/(s)eries$/",    "$1eries"),

array("/(m)ovies$/",    "$1ovie"),

array("/(x|ch|ss|sh)es$/", "$1"),

array("/([m|l])ice$/",   "$1ouse"),

array("/(bus)es$/",     "$1"),

array("/(o)es$/",      "$1"),

array("/(shoe)s$/",     "$1"),

array("/(cris|ax|test)es$/","$1is"),

array("/([octop|vir])i$/", "$1us"),

array("/(alias|status)es$/","$1"),

array("/^(ox)en/",     "$1"),

array("/(vert|ind)ices$/", "$1ex"),

array("/(matr)ices$/",   "$1ix"),

array("/(quiz)zes$/",    "$1")

);

$irregular = array(

array( 'move',  'moves'  ),

array( 'sex',  'sexes'  ),

array( 'child', 'children' ),

array( 'man',  'men'   ),

array( 'person', 'people'  )

);

$uncountable = array(

'sheep',

'fish',

'series',

'species',

'money',

'rice',

'information',

'equipment'

);

if ( in_array( strtolower( $string ), $uncountable ) )  return $string;

foreach ( $irregular as $noun ){

if ( strtolower( $string ) == $noun[0] )

return $noun[1];

}

foreach ( $plural as $pattern ){

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值