簡體   English   中英

使用正則表達式驗證輸入

[英]Validate input using regex

老實說,我不知道我在做什么錯。 我已經在http://regexpal.com/中檢查了regex表達式,並且工作正常

這是我的代碼:

std::string text = "1.98";
std::regex regex_number("((\b[0-9]+)?\.)?[0-9]+\b");  
bool isValid = std::regex_match(text, regex_number);

它對於整數和雙精度Ex應該有效:

  • 1.2
  • 1個
  • 1.99
  • 0.6

不適用於

  • a
  • dd
  • 1.2小時
  • 1,6

我收到所有內容的無效文本。

您忘了在字符串文字中轉義反斜杠:

std::regex regex_number("((\\b[0-9]+)?\\.)?[0-9]+\\b"); 

您還將第一個單詞定界符卡在錯誤的位置。 它應該在可選部分之外:

"\\b(([0-9]+)?\\.)?[0-9]+\\b"

(很抱歉,沒有其他答案;我仍然沒有代表來添加評論。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM