c++ - 解析二进制文件以查找 C++ 中的 URI

标签 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">链接...等等。但这似乎是一个非常缓慢的解决方案。如何提高效率?

最佳答案

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

如果您只需要 http-URI,您当然可以优化上面的内容以简单地查找 http:// 然后调用您的算法。

关于c++ - 解析二进制文件以查找 C++ 中的 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23446691/

相关文章:

使用结构成员和指针的 C++ 冒泡排序

java - 使用自定义字符串分隔符解析 CSV 文件

javascript - 如何获取acl角色对应的所有用户?

java - apache httpclient 4 的 UNICODE URI 编码

java - 文件 : URIs and Slashes

java - URL 到 URI 编码将 "%3D"更改为 "%253D"

c# - 如何将结构从非托管 C++ 程序传递到 C# 程序?

c++ - 发出 Qt 信号时是否有可能抛出异常?

c++ - 存储三角函数调用的结果有意义吗?

java - 如何使用 DateTimeFormatter 解析带冒号的偏移量?