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

逗號分隔字串進階分割:支援跳脫字元的 Regex.Split 實作

     編輯:關於ASP.NET

單純 `string.Split(',')` 無法處理資料本身包含逗號的情況 (如 `"reser,vation,rental,type"`)。需支援跳脫字元 (如 `\,` 代表資料內逗號) 的分割邏輯。

Regex 分割策略

使用正向頻寬零寬度斷言 `(?

string input = "reser\\,vation,rental,type";
string[] parts = Regex.Split(input, @"(?

完整可用代碼


public static string[] SplitWithEscape(string input, char separator = ',', char escape = '\\')
{
    if (string.IsNullOrEmpty(input)) return new string[0];

    string pattern = $@"(?

測試案例

輸入輸出
`a,b,c``["a","b","c"]`
`a\,b,c``["a,b","c"]`
`a\\,b,c``["a\\","b","c"]` (雙反斜線 = 字面反斜線 + 分隔符)
`\\,``["\\", ""]`

替代方案比較

  • TextFieldParser (Microsoft.VisualBasic.FileIO):內建支援跳脫、引號、換行,適合 CSV 解析。
  • CsvHelper (NuGet):功能最完整、效能最佳、支援類別映射。
  • 手寫狀態機:單字元掃描,O(n) 時間、零配置、無 Regex 開銷,極高效能場景首選。

依專案依賴策略選擇:無額外套件 → Regex;標準 CSV → TextFieldParser/CsvHelper;極致效能 → 手寫解析器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved