熱詞衝突的解決

問題----〉

 

      在做一個熱詞系統的時候遇到這樣一個問題,如“程序員的修養“是一個熱詞,“程序員“是一個熱詞,當我們在以 “《程序員的修養》是程序員的必修課 ”作簡單的查找替換的時候會發生什麼問題呢?

 

             1.把“程序員的修養“找到,做替換,如:

 

                      <a href="http://blog.csdn.net">程序員的修養</a>

 

             2.把程序員找到作替換,結果是:

 

                    《<a href="http://blog.csdn.net"><a href="http://blog.csdn.net/nirvana52">程序員<a>的修養</a>》是<a href="http://blog.csdn.net/nirvana52">程序員</a>必修課

 

            經過試驗,發現了html是最小匹配,即,“程序員“有了連接而“程序員的修養”的連接被屏蔽了。

 

問題的解決------〉

 

         1.我們可以把熱詞作一個權重的排序,可以是最大匹配,也可以是最小匹配。把文章內的熱詞替換成爲一個標籤;

 

                  用最大匹配爲例:

 

                         $0->"程序員的修養";

                         $1->"程序員";

 

                        程序員的修養用$0替換則結果是:

 

                           第一次查找替換:

 

                             《$0》是程序員的必修課;

 

                           第二次查找替換:

 

                               《$0》是$1的必修課;

 

          2.之後我們將$0,$1替換回去,這樣就不會出現簡單替換的問題了;

 

問題的總結------------->

 

        在寫代碼的時候,最好把各個元素都抽象出來,這樣更靈活,更容易控制。

 

 

發佈了33 篇原創文章 · 獲贊 4 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章