0

我正在尝试扩展我之前提出的一个问题。我想使用 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。是中心的缩写。如果出于某种原因是查塔姆大学中心大厅的 James Laughlin Music 出品 James Laughlin Music,Cntr,我也希望如此。霍尔查塔姆大学。我不确定我是否解释得很好。

4

1 回答 1

0

使用单词边界:

'/\b' . preg_quote($row['word'], '/') . '\b/i'
于 2013-08-14T12:16:14.590 回答