C#中使用正則表達式替換字符串
正則表達式在查找和替換中特別是用,比如身份證號碼檢查,字符類型檢查等,Python中re模塊可以進行正則表達式檢查,C#中的正則表達式類是Regex,使用Regex類可以進行復雜的字符串替換等,關鍵是正則表達式的寫法。里有Regex的Matches進行匹配并替換。例如
"<ns0:等待提交 狀態(tài)實例編號=\"00000000-0000-0000-0000-000000000000\" 上下文數據=\"{x:Null}\" 查看部門=\"\" 數據表單類型=\"\" 分配超時操作=\"\" 分配職能=\"\" 辦理添寫業(yè)務表單=\"業(yè)務申請-地役權登記\" InterfaceType=\"{x:Type ns0:IExternalEvent}\" 接件職能=\"\" 觸發(fā)器類型=\"\" 下一狀態(tài)辦理人員=\"\" 提交人員=\"\" 管理人員=\"孟凡榮,蘇曉蒙,admin\" 辦理提交選項=\"提交\" 動態(tài)域特殊權限=\"\" 前一狀態(tài)實例編號=\"00000000-0000-0000-0000-000000000000\" 動態(tài)域時限=\"0\" 提交次數=\"0\" 分配時限=\"0\" 權限編號=\"\" 數據表單=\"\" 查看職能=\"\" 提交部門=\"\" 管理部門=\"\" 動態(tài)域人員=\"\" 辦理人員=\"孟凡榮,蘇曉蒙,admin,李柳燕\" 分配部門=\"\" 分配人員=\"\" 狀態(tài)名稱=\"申請\" 提交結果=\"\" 接件部門=\"\" 接件時特殊權限=\"\" x:Name=\"申請\" 動態(tài)域職能=\"\" 辦理時限=\"0\" 查看人員=\"\" 分配時特殊權限=\"\" 接件超時操作=\"\" 管理時特殊權限=\"\" 調試器=\"\" 接件時限=\"0\" 擴展數據=\"\" 數據分流表達式=\"\" 提交職能=\"\" 提交說明=\"\" 辦理時特殊權限=\"編輯\" 管理職能=\"\" 提交方式=\"\" 動態(tài)域部門=\"\" EventName=\"submitEvent\" 狀態(tài)說明=\"\" 辦理超時操作=\"\" 是否會簽=\"0\" 動態(tài)域類型=\"\" 提交日期=\"1900-01-01T00:00:00.0000000\" 啟動窗體=\"\" 提交人員特殊權限=\"\" 查看時特殊權限=\"\" 辦理查看業(yè)務表單=\"\" 狀態(tài)跟蹤器=\"0\" 處理方式=\"\" />\"";
這是保存在數據庫字段中的工作流的xml格式數據,現在要根據“ 狀態(tài)名稱 ”的值替換“辦理人員”的值,而中間的“分配部門”等的值是不知道的,可以這樣:
string XmlData="......"//上面的字符串 string a = "辦理人員=" + "\"" + OldTTransactuser + "\"";//OldTransactuser是程序查出來的辦理人員string b = "\"" + " 狀態(tài)名稱=" + "\"" + stepName + "\"";//stepName是程序查出來的狀態(tài)名稱string oldSubmission = a+"(\\w|\\W)*?"+b; //"([" + a + "]" + "[/W|/w]*?" + "[" + b + "])"; string newSubmission = "辦理人員=" + "\"" + newTrasactUser + "\"" + " 分配部門=\"\" 分配人員=\"\" 狀態(tài)名稱=" + "\"" + stepName + "\"";//newTrasactUser是新的辦理人員 Dictionary<string, string> TemplateDataInfo = new Dictionary<string, string>(); TemplateDataInfo.Add(oldSubmission, newSubmission); foreach (string key in TemplateDataInfo.Keys) { Regex reg = new Regex(key); Console.WriteLine(reg.ToString()); MatchCollection matchs = reg.Matches(errString); foreach (Match match in matchs) { XmlData = XmlData.Replace(match.Value, TemplateDataInfo[key]); }
}
本文來自博客園,作者:GIS民工,轉載請注明原文鏈接:http://www.rzrgm.cn/kook2007/articles/2964939.html

浙公網安備 33010602011771號