遇到這樣乙個需求:給定乙個關鍵字,匹配一段話或一篇文章中的文字,把匹配的文字做標紅處理。
一開始用php自帶的str_replace函式對匹配的關鍵字做替換:
$replace = '' . $keyword . '';
str_replace($replace, $needle, $content);
123dsfsd
fsdf1123123ds
現在需要乙個正則能匹配不包括title和href屬性裡的123,可以這樣寫
$replace = '' . $keyword . '';
$pattern = "/" . $keyword . "(?![^)/";
$content = preg_replace($keywordpattern, $replace, $content);
(?!exp)為零寬度負**先行斷言,斷言此位置的後面不能匹配表示式exp。123(?![^) 表示匹配後面不能有》(但是除外)的123,這樣就成功排除掉html標籤中的命中關鍵字。下圖中gifimg標籤中的title字沒有做替換處理,顯示正常。 mysql選擇性 Mysql索引的選擇性
對於索引的使用,mysql並不一直都是用採用正確的決定的。參考乙個簡單的表 create table r2 id int 11 default null,id1 int 11 default null,cname varchar 32 default null,key id1 id1 engine ...
索引 選擇性
索引的選擇性是指索引列中不同值的數目與表中記錄數的比。如果乙個表中有2000條記 錄,表索引列有1980個不同的值,那麼這個索引的選擇性就是1980 2000 0.99。乙個索引的選擇性越接近於1,這個索引的效率就越高。如果是使用基於cost的最優化,優化器不應該使用選擇性不好的索引。如果是使用基於...
索引的選擇性
索引的選擇性是指索引列中不同值的數目與表中記錄數的比。如果乙個表中有2000條記 錄,表索引列有1980個不同的值,那麼這個索引的選擇性就是1980 2000 0.99。乙個索引的選擇性越接近於1,這個索引的效率就越高。如果是使用基於cost的最優化,優化器不應該使用選擇性不好的索引。如果是使用基於...