我有一个替换词的映射表:
$map = array(
'word1' => 'replacement1',
'word2 blah' => 'replacement 2',
//...
);
我需要替换字符串中的单词。但是只有在字符串是单词时才执行替换:
- 它不在其他单词的中间,例如 textword1 不会被替换为 replacement1,因为它是另一个标记的一部分。
- 分隔符必须保存,但是在它们之前/之后的单词应该被替换。
我可以使用正则表达式将字符串拆分成单词,但是当有几个标记具有映射值(例如 word2 blah)时,这种方法无法起作用。