如何使用 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++ 从字符串中删除元标记?的主要内容,如果未能解决你的问题,请参考以下文章