我正在尝试扩展我之前提出的一个问题。我想使用preg_replace来切换整个单词或单词,而不是某些标点或符号,例如
\s\,\:\-\%\(\)\*\&\$\#\!\@\"\;
目前,我正在使用这样的东西,
$_SESSION['ABBREV']['GENERAL']['SEARCH'][] = '/(?<=\s|^)' . preg_quote($row['word'], '/') . '(?=\s|$)/i';
$_SESSION['ABBREV']['GENERAL']['REPLACE'][] = ucwords($row['abbrev']);
$word = $_SESSION['ABBREV']['GENERAL']['SEARCH']; --array that holds whole words
$abbrev = $_SESSION['ABBREV']['GENERAL']['REPLACE']; --array that stores abbreviations
$string = 'James Laughlin Music Center, Chatham University';
$new_word = = preg_replace($word, $abbrev, $string);
我希望它能成为詹姆斯劳克林音乐中心,查塔姆大学,Cntr。是center的缩写。如果由于某种原因,詹姆斯劳克林音乐,中央大厅查塔姆大学出来詹姆斯劳克林音乐,Cntr。哈特查塔姆大学。我不确定我是否解释得很好。
答案 0 :(得分:0)
使用字边界:
'/\b' . preg_quote($row['word'], '/') . '\b/i'