110,536
社区成员
发帖
与我相关
我的任务
分享
LS|DA100719|TI161039|
解释:LS代表“连接成功”,DA代表日期,TI代表时间,既—>10年7月19日,16点10分39秒
GI|RN3017|G#17277|GN(EN) Mr Messi|GLEA|GV1|
解释:GI代表"入住",RN代表“房间号”,G#代表“客人编号”,GN代表“姓名”,GL代表“语言”,GV代表“VIP会员”
GO|RN1007|G#17277|GSN|
解释:GO代表“退房”,RN代表“房间号”,G#代表“客人编号”,GS代表“共享”(N表示不共享)。
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace CSharpConsole02
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, string> rule = new Dictionary<string, string>();
rule.Add("LS", "连接成功");
rule.Add("DA", "日期");
rule.Add("TI", "时间");
rule.Add("GI", "入住");
rule.Add("RN", "房间号");
rule.Add("G#", "客人编号");
rule.Add("GN", "姓名");
rule.Add("GL", "语言");
rule.Add("GV", "VIP会员");
rule.Add("GO", "退房");
rule.Add("GS", "共享");
rule.Add("GSN", "不共享");
string[] lines = new string[] {
"LS|DA100719|TI161039|",
"GI|RN3017|G#17277|GN(EN) Mr Messi|GLEA|GV1|",
"GO|RN1007|G#17277|GSN|"};
foreach (string line in lines)
{
Console.WriteLine(MultiReplace(line, rule));
}
Console.ReadKey();
}
public static string MultiReplace(string s, Dictionary<string, string> rule)
{
//创建规则文本
StringBuilder regexBuilder = new StringBuilder();
foreach (string key in rule.Keys) regexBuilder.Append(Regex.Escape(key) + "|");
regexBuilder.Remove(regexBuilder.Length - 1, 1);
return Regex.Replace(s, regexBuilder.ToString(), delegate(Match m) { return rule[m.Value]; });
}
}
}