正則選擇性匹配

2021-05-28 02:16:45 字數 634 閱讀 9686

遇到這樣乙個需求:給定乙個關鍵字,匹配一段話或一篇文章中的文字,把匹配的文字做標紅處理。

一開始用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的最優化,優化器不應該使用選擇性不好的索引。如果是使用基於...