解析二进制文件以查找c++中的uri
Parsing a binary file to look for URIs in C++
我的目标是使用c++在二进制文件中查找uri。我已经编写了代码,它告诉我给定的字符串是否是正确的URI(例如,我的代码将为"http://a.pl"返回TRUE,为"xdG:"返回FALSE)。然而,我很难让它在整个文件中工作。我不能一个字一个字地检查整个文件,因为uri可能隐藏在单词中的某个地方,例如
…href = " http://a.pl ">链接…
我想到的显而易见的解决方案是逐个字符检查单词,所以首先是否…href="http://a.pl">link…是一个URI,那么…ref="http://a.pl">link…ef="http://a.pl">链接…等等......但这似乎是一个非常缓慢的解决方案。我怎样才能使它更有效率?
一个简单的解决方案(如果您想避免使用真正的解析器)是首先搜索://
,这应该非常简单和有效,并且必须是您感兴趣的任何URI的一部分(理论上,可能还有其他的,如果您也需要它们,只需搜索:
)。然后通过检查a-z
, A-Z
, 0-9
, +
, -
和.
来向后搜索方案(http
或ftp
或其他)。然后运行你的算法(希望它知道在哪里结束?)。
如果您只需要http
- uri,您当然可以优化上面的内容,简单地查找http://
,然后才调用您的算法。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++中的"inline"关键字
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 用C++中的一个变量定义一个常量
- vector.resize()中的分配错误
- 使用指针从C++中的数组中获取最大值
- arr[-1]在c++中的奇怪行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 将值指定给向量(2D)的向量中的某个位置
- 内置函数可查看CPP中的成员变量