preg_replace整个单词或标点之间

时间:2013-03-02 04:18:36

标签: php preg-replace

我正在尝试扩展我之前提出的一个问题。我想使用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。哈特查塔姆大学。我不确定我是否解释得很好。

1 个答案:

答案 0 :(得分:0)

使用字边界:

'/\b' . preg_quote($row['word'], '/') . '\b/i'