如何从PHP中的字符串中删除多个单词?

use*_*227 2 php regex cakephp preg-replace pluralize

我有一串单词,有一些像

"Cloud", "Clouds", "Application", "Applications", "Event", "Events"
Run Code Online (Sandbox Code Playgroud)

还有一些像

"Access"
Run Code Online (Sandbox Code Playgroud)

它们是单数但最后有的"s".我想删除复数单词,但我不能写一个代码从末尾删除s,因为它将"s"从所有单词中删除.我在互联网上搜索,找不到任何相关内容.任何人都可以帮助我做到这一点的最好方法吗?

编辑:如何在我的程序中使用CakePHP?我之前从未使用它,所以没有经验.我在函数中有String变量.它说我需要安装Cake PHP,谁能告诉我如何在函数中使用它?

谢谢

bur*_*zum 6

使用CakePHP附带的Inflector类.

debug(Inflector::singularize('People')); // will show person
Run Code Online (Sandbox Code Playgroud)

http://book.cakephp.org/2.0/en/core-utility-libraries/inflector.html#Inflector::singularize

static Inflector :: singularize($ plural)

输入: 苹果,橘子,人,男人

输出: Apple,Orange,Person,Man

老实说,我不知道它在内部是如何工作的,但它用英语单词做得很好,你甚至可以配置它来处理特殊情况.

您可以使用Inflector :: rules()定义规则的例外:

Inflector::rules('plural', array('/^(inflect)or$/i' => '\1ables'));
Inflector::rules('plural', array(
    'rules' => array('/^(inflect)ors$/i' => '\1ables'),
    'uninflected' => array('dontinflectme'),
    'irregular' => array('red' => 'redlings')
));
Inflector::rules('transliteration', array('/å/' => 'aa'));
Run Code Online (Sandbox Code Playgroud)