我只是想弄乱并熟悉在 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/