日期:2014-05-17  浏览次数:20892 次

关于匹配替换字符串
原:string  CheckText="len  联想  Think 三星 samsung ";
希望:string CheckNewText="联想笔记本 联想笔记本 联想笔记本 samsung samsung   "
 
字符串里有很多类似不规则的品牌,希望相同的关键词统一成一个品牌;
正则 字符串

------解决方案--------------------
这个符合楼主要求么

Dictionary<string, string> words = new Dictionary<string, string>();
words.Add("len ", "联想笔记本 ");
words.Add("联想 ", "联想笔记本 ");
words.Add("Think ", "联想笔记本 ");
words.Add("三星 ", "samsung ");
words.Add("samsung ", "samsung ");

string CheckText = "len  联想  Think 三星 samsung";
foreach (string key in words.Keys)
    CheckText = CheckText.Replace(key, words[key]);

------解决方案--------------------
List<List<string>> vendorlist = new List<List<string>>()
{
    new List<string>() { "联想笔记本", "len", "联想", "Think" },
    new List<string>() { "samsung", "三星" }
};
string CheckText = "len 联想 Think 三星 samsung";
string CheckNewText = string.Join(" ", CheckText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(x => vendorlist.First(y => y.Contains(x))[0]).ToArray());
------解决方案--------------------
你需要一个词库来对应相应品牌