我有许多句子,我想用一个单词替换每个单词,这个单词(或其变体)包含在句子中。我把我的正则表达式模式放在一个索引数组中,这些索引数组是单个字在每个字符串中查找的。我有具有替换字(这些词语只是简单的例子)的第二阵列:用php中的preg替换字符串中的元素使用php中的preg
$pattern = array('/one/','/two/','/three/');
$replacements = array('ones','twos','threes');
例如说我有一句:
"There is one tree"
然后我想与
替换句子"ones"
我曾经尝试都preg_replace
和preg_replace_calback
,并不一定要使用哪一个或者我是否应该使用preg_match
我想这一点:
$simplified = preg_replace_callback($pattern, function($matches) {
return $replacements[array_search($matches[0], $pattern, true)];
}, $simplified, 1);
其中$simplified
包含我想替换句子的单词。
我相信array_search适用于关联数组,但我试着循环索引数组。我必须找到真正匹配句子中单词的正则表达式,并且需要获得匹配的索引以在替换数组中找到正确的单词。这是漫长的,可能是错误的方法。
我的问题是: 1.我接近这个错误? 2.如果这种方法可行,我怎样才能用一个单词替换句子?
这些取代你的实际替换?你只需要在比赛中加入一个's',如果是这样的话,就像[this](http://regex101.com/r/tP3sR1)一样。 – Jerry
我挣扎了一下,准确地解释了我想要做的事情,实际示例文本是:“3件背心”,在句子中包含单词背心或背心的两种情况下,我想用句子替换句子单词“背心”。 – jmarais