解析二进制文件以在C ++中查找URI

时间:2014-05-03 15:59:46

标签: c++ parsing uri binaryfiles

我的目标是使用C ++在二进制文件中查找URI。我已经编写了代码,告诉我给定的字符串是否是正确的URI(因此我的代码将为“http://a.pl”返回TRUE,例如对于“xdG:”则返回FALSE)。但是,我很难尝试使其适用于整个文件。我不能一个字地检查整个文件,因为URI可以隐藏在单词内部,例如。

... HREF = “http://a.pl” >链接...

我提出的明显的解决方案是逐个字符地检查单词,所以首先是...... href =“http://a.pl”> link ...是一个URI,然后。 ..ref =“http://a.pl”>链接...,然后... ef =“http://a.pl”>链接......依此类推。但这似乎是一个非常缓慢的解决方案。我怎样才能提高效率呢?

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案(如果你想避免使用真正的解析器)将首先搜索://,这应该是非常简单和有效的,并且必须是你感兴趣的任何URI的一部分(理论上,可能还有其他人,如果你也需要它们,只需搜索:)。然后通过检查httpftpa-zA-Z,{{向后搜索方案(0-9+或其他) 1}}和-。然后运行你的算法(希望知道在哪里结束?)。

如果您只需要. - URI,您当然可以优化上述内容,只需查找http,然后再调用您的算法。