我想要做什么应该是一个简单的正则表达式,我所要做的就是匹配一个单词的单数部分,不管它是否有s最后。所以,如果我有以下的话正则表达式 - 如何搜索单数或复数形式的单词
test
tests
编辑:进一步的例子,我需要这对很多话有可能不只是这两个
movie
movies
page
pages
time
times
对于所有的人,我需要得到这个词没有结束,但我找不到一个正则表达式,总是会在没有结束的情况下抓住第一位,并为这两种情况工作。
我已经试过如下:
([a-zA-Z]+)([s\b]{0,}) - This returns the full word as the first match in both cases
([a-zA-Z]+?)([s\b]{0,}) - This returns 3 different matching groups for both words
([a-zA-Z]+)([s]?) - This returns the full word as the first match in both cases
([a-zA-Z]+)(s\b) - This works for tests but doesn't match test at all
([a-zA-Z]+)(s\b)? - This returns the full word as the first match in both cases
我一直在使用http://gskinner.com/RegExr/为尝试不同的正则表达式的。
编辑:这是一个崇高的文本片段,对于那些不知道在崇高文本片段是一个快捷方式,以便我可以键入说我的数据库的名称,并打“运行代码片段”,它会把它变成类似于:
$movies= $this->ci->db->get_where("movies", "");
if ($movies->num_rows()) {
foreach ($movies->result() AS $movie) {
}
}
我所需要的就是将“电影”变成“电影”并自动将其插入到foreach循环中。
这意味着我不能只在文本上查找和替换,我只需要考虑60-70个单词(它只针对我自己的表格运行,而不是英语中的每个单词)。
谢谢! 蒂姆 -
你想要一个特定的单词匹配,或任意的单词?此外,它并不总是* s *,有时它是* es *。 – R0MANARMY 2012-07-10 02:04:18
英文复数形式,即使不包括不规则形式,也不像删除's'那么简单。你会如何处理诸如“西红柿”或“派对”或“叶子”(叶子)的情况? – nhahtdh 2012-07-10 02:04:22
是的,我意识到,在这种情况下,我只有几个字,这个正则表达式将被用来反对,所有有/没有结束。 – Tim 2012-07-10 02:05:59