【问题标题】:Obtain Regular Expressions from file从文件中获取正则表达式
【发布时间】:2011-06-15 16:33:41
【问题描述】:

我希望能够从文件中获取正则表达式列表。我已经尝试将正则表达式读入 char * 或 std::string ,它们可以正常工作。但是,将它们转换/使用它们作为正则表达式被证明是徒劳的,因为数据类型不匹配。

我发现的大多数在线资源都创建了这样的正则表达式:

std::tr1::regex rx("regex expression here");

对不起,我也不确定两者之间的区别:

std::tr1::regex rx("regex expression here");

反对

std::tr1::regex rx = ("regex expression goes here");

我想知道是否有办法将任何类型的字符串数据类型转换为 C++ 中的正则表达式。任何帮助表示赞赏。谢谢!

【问题讨论】:

  • 定义“无果”。显示你的错误。如果您可以从字符串文字构造regex,则可以从char const* 构造regex(是的const,请养成这个习惯)或std::string。另外,我修正了你的例子。
  • 你能提供你尝试过的代码片段吗?请注意为什么“分配”之类的内容不适用于该描述:gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3/…
  • @ereOn @DumbCoder:不错。现在他刚刚离开并接受了对他每个问题的任意答案。这真的有助于社区。 讽刺>
  • std::tr1::regex 有一个接受 std::string 指定正则表达式的 ctor。将数据读入std::string 是常见且微不足道的。

标签: c++ regex tr1


【解决方案1】:

只需将文件加载到某个字符*(我假设您可以这样做)并将其传递给正则表达式。

【讨论】:

  • 我发现了问题所在。我正在使用 C 函数 fgets() 从文件中读取正则表达式,这也会复制空字节。感谢 Xirdus,我指出问题出在您的建议之后。
猜你喜欢
  • 2012-10-21
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多