过滤非嵌套的html tag, 最近要用,先来写个函数!

来源:互联网 发布:nginx centos yum 编辑:程序博客网 时间:2024/06/11 00:46

         简单逻辑如下, 欢迎大家挑毛病:

#include <iostream>using namespace std;#define TAG_BEGIN  "<p class=\"img-desc\">"#define TAG_END    "</p>"void filterHtmlTag(string &strHtml){unsigned int leftTagLen = string(TAG_BEGIN).size();unsigned int rightTagLen = string(TAG_END).size();while(1){unsigned int pos1 = strHtml.find(TAG_BEGIN);if(pos1 == string::npos){return;}unsigned int pos2 = strHtml.find(TAG_END, pos1 + leftTagLen);if(pos2 == string::npos){return;}strHtml.erase(pos1, pos2 - pos1 + rightTagLen);}}int main(){{string s = "xxx<p class=\"img-desc\">hello world</p>yyyy";filterHtmlTag(s);cout << s.c_str() << endl;}{string s = "xxx<p class=\"img-desc\"></p>yyyy";filterHtmlTag(s);cout << s.c_str() << endl;}{string s = "<p class=\"img-desc\"></p>yyyy";filterHtmlTag(s);cout << s.c_str() << endl;}{string s = "xxx<p class=\"img-desc\"></p>";filterHtmlTag(s);cout << s.c_str() << endl;}{string s = "<p class=\"img-desc\"></p>";filterHtmlTag(s);cout << s.c_str() << endl;}{string s = "<p class=\"img-desc\">x</p>";filterHtmlTag(s);cout << s.c_str() << endl;}{string s = "xxx<p class=\"img-desc\">hello world</p>yyyy,xxx<p class=\"img-desc\">hello world</p>yyyy,xxx<p class=\"img-desc\">hello world</p>yyyy,";filterHtmlTag(s);cout << s.c_str() << endl;}{string s = "xxx<p class=\"img-desc\"></p>yyyy,xxx<p class=\"img-desc\">hello world</p>yyyy,xxx<p class=\"img-desc\">hello world</p>yyyy,";filterHtmlTag(s);cout << s.c_str() << endl;}{string s = "xxx<p class=\"img-desc\"></p>yyyy,xxx<p class=\"img-desc\">hello world</p>yyyy,xxx<p class=\"img-desc\">hello world</p>yyyy,";filterHtmlTag(s);cout << s.c_str() << endl;}return 0;}
         OK, 不多说, 睡觉。