使用正则表达式验证输入

Validate input using regex

本文关键字:输入 验证 正则表达式      更新时间:2023-10-16

我真的不知道我做错了什么。我已经检查了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"

(抱歉额外的回答;