我有許多句子,我想用一個單詞替換每個單詞,這個單詞(或其變體)包含在句子中。我把我的正則表達式模式放在一個索引數組中,這些索引數組是單個字在每個字符串中查找的。我有具有替換字(這些詞語只是簡單的例子)的第二陣列:用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