0
  1. 我需要使用 std::regex 并验证 C++ 中的输入字符串 输入字符串应该介于folder-1folder-01folder-001到之间folder-200(前缀必须是“文件夹-”) 如何为此编写正则表达式?

  2. C++ 中使用的正则表达式与 PHP 和 JavaScript 等其他语言中使用的正则表达式有什么不同?

  3. 大多数 C++ 开发人员是否使用“Boost regx”或“std::regex”(请发表一些评论)?

4

2 回答 2

2

就像是

const std::regex re("folder-\\d{1,3}");

例子:

http://liveworkspace.org/code/1EfD0Q 12 美元

您可以阅读 C++ 标准中的 std::regex 或 boost 文档中的 boost::regex。boost::regex 是稳定的库,std::regex 是 C++11 标准的新特性。

现在,例如 gcc 4.7 无法处理此正则表达式,因此,使用 boost 更好(在 LWS 的示例中,我使用 boost::regex 而不是 std::regex,因为 gcc 4.7 中的 std::regex 无法正确处理 {n, m })。

于 2013-01-14T07:21:12.737 回答
2

尝试使用,

  System.out.println("folder-004".matches("^folder-\\d{1,3}?$"));

更多详情http://www.regular-expressions.info/reference.html

于 2013-01-14T08:06:41.540 回答