考慮以下字符串:
$MRK - Merck - ($AAPL, $MSFT, $F) having day $AA! like $P and me :)
雖然這是jibberish,就說明我的問題。我想掃描所有以美元符號($)開頭的單詞,並根據預先定義的代碼列表進行檢查。如果有相匹配的,帶有標籤({TICKER})替換它們,如下所示:
{TICKER} - Merck - ({TICKER}, {TICKER},{TICKER}) having a day {TICKER}! like
{TICKER} an me :)
我現在使用此功能:
function _process_tickers($string) {
$result = db_query("SELECT symbol FROM us_stocks");
while ($row = db_fetch_object($result)) {
$tickers[] = ' $' . $row->symbol . ' ';
}
return str_replace($tickers, ' {TICKER} ', $tweet);
}
問題:由空格包圍這隻漁獲行情(這$ AA被空格包圍),但不包括其他情況,例如(此代碼在$ AA前面只有一個空格)或(這個代碼被逗號包圍:我的$ AA代碼)。但也有兩個緊跟在一起的人(對$ AA $ XOM感到滿意) - 應該會變得很滿意(TICKER} {TICKER})。我如何處理所有這些可能的情況?
而且在eigh第四天,天空中的偉大處理器創建了**正則表達式**。他看着他創造了什麼,這很好。你需要['preg_replace'](http://php.net/manual/en/function.preg-replace.php)來完成比簡單字符串替換更復雜的任何事情。歡迎來到模式匹配的世界。 – rdlowrey 2012-02-09 15:01:13