關於英語單詞單複數轉換方法在程式中的實現

來源:互聯網
上載者:User

這裡是PHP的實現方法,其實在csharp或java中,實現方式都是差不多的。

/**<br /> * wirror: pluralize a string<br /> * @param $string<br /> */<br /> function pluralize( $string )<br /> {</p><p> $plural = array(<br /> array( '/(quiz)$/i', "$1zes" ),<br /> array( '/^(ox)$/i', "$1en" ),<br /> array( '/([m|l])ouse$/i', "$1ice" ),<br /> array( '/(matr|vert|ind)ix|ex$/i', "$1ices" ),<br /> array( '/(x|ch|ss|sh)$/i', "$1es" ),<br /> array( '/([^aeiouy]|qu)y$/i', "$1ies" ),<br /> array( '/([^aeiouy]|qu)ies$/i', "$1y" ),<br /> array( '/(hive)$/i', "$1s" ),<br /> array( '/(?:([^f])fe|([lr])f)$/i', "$1$2ves" ),<br /> array( '/sis$/i', "ses" ),<br /> array( '/([ti])um$/i', "$1a" ),<br /> array( '/(buffal|tomat)o$/i', "$1oes" ),<br /> array( '/(bu)s$/i', "$1ses" ),<br /> array( '/(alias|status)$/i', "$1es" ),<br /> array( '/(octop|vir)us$/i', "$1i" ),<br /> array( '/(ax|test)is$/i', "$1es" ),<br /> array( '/s$/i', "s" ),<br /> array( '/$/', "s" )<br /> );</p><p> $singular = array(<br /> array("/s$/", ""),<br /> array("/(n)ews$/", "$1ews"),<br /> array("/([ti])a$/", "$1um"),<br /> array("/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/", "$1$2sis"),<br /> array("/(^analy)ses$/", "$1sis"),<br /> array("/([^f])ves$/", "$1fe"),<br /> array("/(hive)s$/", "$1"),<br /> array("/(tive)s$/", "$1"),<br /> array("/([lr])ves$/", "$1f"),<br /> array("/([^aeiouy]|qu)ies$/", "$1y"),<br /> array("/(s)eries$/", "$1eries"),<br /> array("/(m)ovies$/", "$1ovie"),<br /> array("/(x|ch|ss|sh)es$/", "$1"),<br /> array("/([m|l])ice$/", "$1ouse"),<br /> array("/(bus)es$/", "$1"),<br /> array("/(o)es$/", "$1"),<br /> array("/(shoe)s$/", "$1"),<br /> array("/(cris|ax|test)es$/", "$1is"),<br /> array("/([octop|vir])i$/", "$1us"),<br /> array("/(alias|status)es$/", "$1"),<br /> array("/^(ox)en/", "$1"),<br /> array("/(vert|ind)ices$/", "$1ex"),<br /> array("/(matr)ices$/", "$1ix"),<br /> array("/(quiz)zes$/", "$1")<br /> );</p><p> $irregular = array(<br /> array( 'move', 'moves' ),<br /> array( 'sex', 'sexes' ),<br /> array( 'child', 'children' ),<br /> array( 'man', 'men' ),<br /> array( 'person', 'people' )<br /> );</p><p> $uncountable = array(<br /> 'sheep',<br /> 'fish',<br /> 'series',<br /> 'species',<br /> 'money',<br /> 'rice',<br /> 'information',<br /> 'equipment'<br /> );</p><p> // save some time in the case that singular and plural are the same<br /> if ( in_array( strtolower( $string ), $uncountable ) )<br /> return $string;</p><p> // check for irregular singular forms<br /> foreach ( $irregular as $noun )<br /> {<br /> if ( strtolower( $string ) == $noun[0] )<br /> return $noun[1];<br /> }</p><p> // check for matches using regular expressions<br /> foreach ( $plural as $pattern )<br /> {<br /> if ( preg_match( $pattern[0], $string ) )<br /> return preg_replace( $pattern[0], $pattern[1], $string );<br /> }</p><p> return $string;<br /> }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.