douyan4243 2012-05-01 12:46
浏览 32
已采纳

如何在c ++ boost中编写这些正则表达式?

I want to do two replacement in a string, and i know how to write the regex in php, curently i am not familiar with c++ boost.

// Replace all doubled-up <BR> tags with <P> tags, and remove fonts.
    $string = preg_replace("/<br\/?>[ 
\s]*<br\/?>/i", "</p><p>", $string);
    $string = preg_replace("/<\/?font[^>]*>/i", "", $string);

how to write the code in c++ boost?

Thanks in advance.

  • 写回答

1条回答 默认 最新

  • duanjiong2021 2012-05-01 14:47
    关注

    All the usual warnings about parsing HTML with regexes apply.

    #include <boost/regex.hpp>
    #include <iostream>
    #include <string>
    
    int main()
    {
      boost::regex double_br("<br/?>[ \\
    \\s]*<br/?>", boost::regex::icase);
      boost::regex fonts("</?font[^>]*>", boost::regex::icase);
    
      std::string cases[] = {
        "foo<br><br>bar",
        "one<br/><br>two",
        "a<br>   <br/>b",
        "a<br><br>c<br/><br/>d",
        "<font attr=\"value\">w00t!</font>",
        "<font attr=\"value\">hello</font><font>bye</font>",
        ""
      };
    
      for (std::string *s = cases; *s != ""; ++s) {
        std::cout << *s << ":
    ";
    
        std::string result;
        result = boost::regex_replace(*s, double_br, "</p><p>");
        result = boost::regex_replace(result, fonts, "");
    
        std::cout << "  - [" << result << "]
    ";
      }
    
      return 0;
    }
    

    Output:

    foo<br><br>bar:
      - [foo</p><p>bar]
    one<br/><br>two:
      - [one</p><p>two]
    a<br>   <br/>b:
      - [a</p><p>b]
    a<br><br>c<br/><br/>d:
      - [a</p><p>c</p><p>d]
    <font attr="value">w00t!</font>:
      - [w00t!]
    <font attr="value">hello</font><font>bye</font>:
      - [hellobye]
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法