C++正则表达式的简单使用

标签 c++ regex visual-studio-2010 boost-regex

我只是想弄乱并熟悉在 C++ 中使用正则表达式。 假设我希望用户输入以下内容:###-$$-###,使#=0-9 之间的任何数字和$=0-5 之间的任何数字。这是我实现此目的的想法:

regex rx("[0-9][0-9][0-9]""\\-""[0-5][0-5]")

这不是确切的代码,但这是检查用户输入是否为有效数字字符串的一般想法。但是,假设我不允许数字以 0 开头,所以:099-55-999 是 Not Acceptable 。我怎样才能检查类似的东西并输出无效?谢谢

最佳答案

[0-9]{3}-[0-5]{2}-[0-9]{3}

匹配以 0 到 9 之间的三个数字开头,后跟一个破折号,然后是 0 到 5 之间的两个数字,然后是破折号,然后是 0 到 9 之间的三个数字的字符串。

这就是您要找的吗?这是非常基本的正则表达式。我建议你看一个good tutorial .

编辑:(在您更改问题之后):

[1-9][0-9]{2}-[0-5]{2}-[0-9]{3}

将与上面的匹配相同,除了不允许 0 作为第一个字符。

关于C++正则表达式的简单使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8363080/

相关文章:

Ruby 正则表达式 : negative matching

c# - 在 C# 中用 Regex 替换两个或多个空格

php - 如何匹配出现在特定子字符串之后的多个子字符串?

sql-server - 部署 Visual Studio 2010 数据库项目

c# - 由于复制重复引用而导致构建时间长

c++ - std::string 和 char* 的特化函数模板

java - 异常规范,有用没用?

c++ - 使用标准适当实现数据包流

c++ - 'isprint' 在 solaris 上为不可打印的字符返回 true

visual-studio-2010 - Sublime Text 样式 ctrl-P 等效于 Visual Studio 2010?