作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 <regex>
来自 Visal Studio 2010。我知道当我创建 regex 对象时它会被编译。没有像其他语言和库中那样的编译方法,但我认为这就是它的工作方式,对吗?
我需要在一个文件中存储大量这种已编译的正则表达式,这样我就可以获取内存块 block 并获取我已编译的正则表达式。
我不知道该怎么做。我发现在 PCRE 中是 possible但它是 Linux 库。有一个 Windows [版本 2但它已经 3 岁了,我想使用更高级的方法(windows 版本中没有 c++ 包装器)。
那么可以使用save std:regex
吗?或 boost::regex
(是一样的吗?)作为一 block 内存然后简单地重用它?
或者是否有其他适用于 Windows 的简单库可以做到这一点?
编辑:感谢伟大的答案。我将简单地检查将正则表达式简单地存储为字符串是否足够,然后如果它仍然很慢,我将测试它并将其与这个旧的 PCRE 库进行比较。
最佳答案
您可以将正则表达式字符串本身用作“序列化”正则表达式 - 只需将它们保存到一个文件中,然后当您想要重构 regex
对象时,只需将保存的字符串传递给 regex
构造函数。
我能想到的唯一缺点:
这样做的好处是:
编译正则表达式数据库(不包括 I/O)的时间是否真的足够重要以保证尝试保存编译状态?
关于c++ - 如何将已编译的正则表达式 (std::regex) 保存/序列化到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4499808/
我是一名优秀的程序员,十分优秀!