我正在寻找一个PHP正则表达式模式,它可以将英语单词从其过去的形式提取到现在,连续的形式从现在到现在,反之亦然。
例如:想要->,玩->游戏,煮->厨师
烹饪->煮熟,玩->玩..。
还有:照顾->,玩->游戏,烹饪->厨师
关心->关怀,玩->游戏等等.
发布于 2015-10-29 08:18:26
如果您可以将您的单词识别为动词,则您的第一个要求非常容易:
$present_tense = preg_preplace('/(ed)$/', '', $word);但是,即使是连续形态的前两个例子也显示出不正常的行为:由于关心,增加e以获得照顾,使用play,只有-ing被移除。
如果有单词列表,则可以生成模式->替换数组,可以在单个替换()调用中使用该数组:
$patterns = array();
$patterns[0] = '/\\bcare\\b/i'; // these can be automatically
$patterns[1] = '/\\bplay\\b/i'; // generated if you have only the
$patterns[2] = '/\\bcook\\b/i'; // words in an array
$replacements = array();
$replacements[2] = 'caring';
$replacements[1] = 'playing';
$replacements[0] = 'cooking';
$present_tense = preg_replace($patterns, $replacements, $sentence);这也适用于句子,因为要更改的单词是已知的,可以由正则表达式来选择。替换在这里不合适,因为它不能识别单词边界。
这就是你可以用雷克斯做的事。为了获得更完整的解决方案,您必须搜索更复杂的库,就像上面的注释中提到的那样。
https://stackoverflow.com/questions/33408745
复制相似问题