怎样用正则替换下面的文本
【tssdfsdnmhsfdf【vxdfdfsf标题nnnsdfdfdfsdfb】abcssdsdfsdf】

【tssdfsdnmhsfdf【标题】abcssdsdfsdf】我用
str= Regex.Replace(str, @"【[\s\S]*?标题[\s\S]*?】", "【标题】", RegexOptions.IgnoreCase);是按整个替换掉了,从最里面匹配怎么写?

解决方案 »

  1.   


    str = Regex.Replace(str, "[^【】]*(标题)[^【】]*", "$1");
      

  2.   

    string test = "【tssdfsdnmhsfdf【vxdfdfsf标题nnnsdfdfdfsdfb】abcssdsdfsdf】 ";
    //如果对源字符串很了解,只要把最内层的替换为“标题”而不需要加判断时,最简单的
    string result = Regex.Replace(test, @"(?<=【)[^【】]*(?=】)", "标题");
    //性能上优化一下
    string result = Regex.Replace(test, @"(?<=【)(?>[^【】]*)(?=】)", "标题");
    //如果需要经过判断最内层是否含有“标题”才决定是否替换时
    string result = Regex.Replace(test, @"(?<=【)[^【】]*?标题[^【】]*(?=】)", "标题");