字符串结尾的正则表达式与数字

时间:2013-01-14 07:13:13

标签: c++ regex

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

  2. 正则表达式在C ++中的使用是否与正则表达式不同,在PHP和JavaScript等其他语言中使用?

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

2 个答案:

答案 0 :(得分:2)

这样的东西
const std::regex re("folder-\\d{1,3}");

示例:

http://liveworkspace.org/code/1EfD0Q $ 12

您可以在C ++标准中了解std :: regex,或者在boost docs中了解boost :: regex。 boost :: regex是稳定库,std :: regex是C ++ 11标准的新特性。

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

答案 1 :(得分:2)

尝试使用,

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

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