我需要使用 std::regex 并验证 C++ 中的输入字符串 输入字符串应该介于
folder-1
或folder-01
或folder-001
到之间folder-200
(前缀必须是“文件夹-”) 如何为此编写正则表达式?C++ 中使用的正则表达式与 PHP 和 JavaScript 等其他语言中使用的正则表达式有什么不同?
大多数 C++ 开发人员是否使用“Boost regx”或“std::regex”(请发表一些评论)?
问问题
443 次
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}?$"));
于 2013-01-14T08:06:41.540 回答