首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 正則表達式整理備忘 (6)

     編輯:關於C語言

正則表達式進階:0-100 數值精確匹配與精確匹配的局限性

一、[0,100] 完整匹配模式


Regex r = new Regex(@"^\+?0*(?:100(\.0*)?|(\d{0,2}(?=\.\d)|\d{1,2}(?=($|\.$)))(\.\d*)?)$");

涵蓋規則:

  • 00、00.、00.00、001.100 合法
  • 空字串、單獨小數點、>100 不合法
  • 可帶後綴 (如 1.07f) 未處理

測試代碼:


string x = "";
while (true) {
    x = Console.ReadLine();
    if (x != "exit") {
        Console.WriteLine(x + (r.IsMatch(x) ? " succeed!" : " failed!"));
    } else break;
}

二、精確匹配的困難性

日期、URL、Email 等精確匹配極難寫出完美正則,建議:

  • 日期:限定業務實際時間範圍簡化模式
  • Email:僅涵蓋最常見格式,不追求 RFC 完整合規
  • 退而求其次:保證「比較精確」而非「完全精確」
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved