使用正则表达式验证输入
Validate input using regex
我真的不知道我做错了什么。我已经检查了http://regexpal.com/中的正则表达式,它工作得很好
下面是我的代码:std::string text = "1.98";
std::regex regex_number("((b[0-9]+)?.)?[0-9]+b");
bool isValid = std::regex_match(text, regex_number);
对于整型和双精度型应该有效例:
- 1.2
- 1
- 1.99
- 0.6
对
无效- aa <
- dd/gh>
- 1.2 h
- 1, 6
我得到非有效文本的一切
您忘记在字符串文本中转义反斜杠:
std::regex regex_number("((\b[0-9]+)?\.)?[0-9]+\b");
您还将第一个单词分隔符卡在了错误的位置。它应该在可选部分之外:
"\b(([0-9]+)?\.)?[0-9]+\b"
(抱歉额外的回答;
相关文章:
- 正在尝试了解输入验证循环
- 如何在C++中检查2D数组中负值的输入验证
- cin 的十进制输入验证?
- 输入验证以筛选出字符、字符串和一系列整数
- 输入验证将数字放入向量中
- 在C++中使用字符数组进行输入验证
- 在C++中使用字符数组进行用户输入验证
- C++ 中字符数组的输入验证
- 检查节点的输入验证的整数
- 如何让我的程序在输入验证的基础上读取素数
- C++ 用户输入验证无法正常工作
- 程序终止,而不是继续整数输入验证循环
- 使用REGEX进行电子邮件输入验证C
- C++:输入验证器函数
- 将用户输入验证为整数:用户必须两次输入输入
- C 输入验证
- C :对输入验证函数进行编程的性能影响可以对其进行编程,而每次都可以将其编程
- 使用模板函数进行通用输入验证
- 为什么用于输入验证的 while 循环要么完全跳过循环,要么不考虑错误的输入
- 仅 C++ 字母和空格输入验证