如何使用 C++ 从字符串中删除元标记?

Posted

技术标签:

【中文标题】如何使用 C++ 从字符串中删除元标记?【英文标题】:How do I remove meta tags from a string using C++? 【发布时间】:2011-08-13 15:28:50 【问题描述】:

需要帮助弄清楚如何从上下文中提取文本(Honda from str),需要类似于 Perl 正则表达式的东西

#include <iostream>
#include <string>

using namespace std;

int main(int argc, char* argv[]) 
    string str;
    str = "<make>Honda</make>";
    //Code to extract Honda from above string
    cout<<str<<endl;
    cin.get();
    return 0;

【问题讨论】:

如果该字符串是 XML,您需要的是 XML 解析器,而不是正则表达式引擎。请搜索,有很多可用的选项。 “类似的东西”是什么意思?以什么方式类比?从某种意义上说,它解析数据?这很模糊...... 您肯定想使用reg 表达式来解析html 文档。如果它是一个单行字符串,你可能会逃脱它。 【参考方案1】:

需要类似于 Perl 正则表达式的东西

这是一个技巧问题吗? :) 那个“东西”是 PCRE:“Perl-Compatible Regular Expressions”。

真正需要的是libxml2,以及XPath 查询//meta/text()

【讨论】:

+1:虽然这个问题稍微格式化一下会更好。欢迎来到 SO! 谢谢!已经做到了,没有技巧的问题。只是想使用规则从字符串中删除文本,就像 Perl 中的正则表达式一样。我在 MSXML6 中弄明白了。【参考方案2】:

在 C# 中(我不懂 C# 编程),我知道有 Regex,但在 C++ 中它可能包含在外部库中

【讨论】:

你为什么一直贬低我?我想宣布我有事情要宣布”:为什么? 你在和谁说话? “宣布”?你在说什么? 问问自己这个答案以何种方式回答了这个问题。 C# 根本不相关,而且您并没有真正谈论 C++。 仅供参考,Boost 提供了一个正则表达式库,并被合并到 C++0x 中。但是正则表达式不是这项工作的正确工具。

以上是关于如何使用 C++ 从字符串中删除元标记?的主要内容,如果未能解决你的问题,请参考以下文章

如何从字符串中删除 HTML 标记

如何在 python 编程中查看和编辑元标记

如何使用 C++ 从字符串中删除前导零?

如何在反应节点 js 项目中从客户端创建动态元标记?

仅使用 Javascript 从 HTML 字符串中提取元标记

如何使用 XSLT 从 XML 中删除元素标记