我需要使用std :: regex并在C ++中验证输入字符串
输入字符串应介于folder-1
或folder-01
或folder-001
至folder-200
之间(前缀必须为'folder-')
如何为此编写正则表达式?
正则表达式在C ++中的使用是否与正则表达式不同,在PHP和JavaScript等其他语言中使用?
大多数C ++开发人员是否使用'Boost regx'或'std :: regex'(请注意一些评论)?
答案 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}?$"));