我有這個網頁,用戶可以添加表情符號到他們的意見。我想限制每條評論的表情符號數量。該「系統」的作品,但我有一些問題,正則表達式的一部分。 我有一個配置文件中定義我的表情就像這樣:匹配文本字符串
$config['Smilies'] = Array (
// irrelevant stuff
'smilies' => Array (
':)' => 'smile.gif',
':(' => 'sad.gif',
// some more smilies
's:10' => 'worship.gif',
's:11' => 'zip.gif',
's:12' => 'heart.gif',
// some more smilies
's:1' => 'dry.gif',
's:2' => 'lol.gif',
's:3' => 'lollol.gif',
// some more smilies
)
);
,然後當我驗證評論(看看有多少笑臉在那裏),我環槽這個陣列和微笑匹配的內容評論。正則表達式中使用這樣的:
foreach ($this->config['smilies'] as $smilie => $smilieImage)
{
$matches = Array();
Preg_Match_All ('/' . Preg_Quote ($smilie) . '/i', $Content, $matches);
$numOfFoundSmilies += Count ($matches[0]);
}
的問題是了,如果我輸入「S:10」到註釋,上面的代碼會發現兩個匹配:「S:10」和「S: 1" 。我的正則表達式的知識是非常差的,我不明白這一個。
也許你應該改變s:1到s:01等。 – Artelius 2009-12-22 09:17:31