比如  "我是一个好人{0},你信不信"我想把 {0}  这个 替换成""
注意我这里只是一个字符串,不是占位符。
有的字符串里包含这个,有的字符串里不包含这个。我怎么得到 "我是一个好人,你信不信" 这种呢?string.Format("我是一个好人{0}","")//这种不符合我的要求,因为有些字符串里可能不包含这个{0}

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<string> query = new List<string>
                {
                    "我是一个好人,你信不信",
                    "我是一个好人{0},你信不信",
                    "我是一个好人{{0}},你信不信",
                    "{{0}}",
                    "{{{0}",
                    "{0}}}",
                    "{{0}}",
                    "{{{{{{{{"
                };
                query.ForEach(x => Console.WriteLine(x, "张三"));
                Console.WriteLine();
                query = query.Select(x => Regex.Replace(x, @"(?<!\{)\{\d+\}|\{\d+\}(?!\})", "")).ToList();
                query.ForEach(x => Console.WriteLine(x, "张三"));
            }
        }
    }我是一个好人,你信不信
    我是一个好人张三,你信不信
    我是一个好人{0},你信不信
    {0}
    {张三
    张三}
    {0}
    {{{{我是一个好人,你信不信
    我是一个好人,你信不信
    我是一个好人{0},你信不信
    {0}
    {
    }
    {0}
    {{{{
    Press any key to continue . . .
      

  2.   

    string s = "我是一个好人{0},你信不信";
    string r = Regex.Replace(s, @"{\d+}", "");
    Response.Write(r);
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<string> query = new List<string>
                {
                    "我是一个好人,你信不信",
                    "我是一个好人{0},你信不信",
                    "我是一个好人{{0}},你信不信",
                    "我是一个好人{{{0}}},你信不信",
                    "我是一个好人{0}}},你信不信",
                    "我是一个好人{{0}}},你信不信",
                    "我是一个好人{{{{0}}}},你信不信",
                    "{{0}}",
                    "{{{0}",
                    "{0}}}",
                    "{{0}}",
                    "{{{{{{{{",
                    "{}"
                };
                query.ForEach(x => { try { Console.WriteLine(x, "张三"); } catch (FormatException ex) { Console.WriteLine(x + " --" + ex.Message); } });
                Console.WriteLine();
                query = query.Select(x => Regex.Replace(x, @"\{+\d+\}+", (m) =>
                    {
                        if (Regex.Match(m.Value, @"\{+").Value.Length % 2 !=
                            Regex.Match(m.Value, @"\{+").Value.Length % 2)
                            throw new FormatException();
                        if (Regex.Match(m.Value, @"\{+").Value.Length % 2 == 1)
                            return Regex.Replace(m.Value, @"\{\d+\}", "");
                        else
                            return m.Value;
                    })).ToList();
                query.ForEach(x => { try { Console.WriteLine(x, "张三"); } catch (FormatException ex){ Console.WriteLine(x + " --" + ex.Message); } });
            }
        }
    }我是一个好人,你信不信
    我是一个好人张三,你信不信
    我是一个好人{0},你信不信
    我是一个好人{张三},你信不信
    我是一个好人张三},你信不信
    我是一个好人{{0}}},你信不信 --Input string was not in a correct format.
    我是一个好人{{0}},你信不信
    {0}
    {张三
    张三}
    {0}
    {{{{
    {} --Input string was not in a correct format.我是一个好人,你信不信
    我是一个好人,你信不信
    我是一个好人{0},你信不信
    我是一个好人{},你信不信
    我是一个好人},你信不信
    我是一个好人{{0}}},你信不信 --Input string was not in a correct format.
    我是一个好人{{0}},你信不信
    {0}
    {
    }
    {0}
    {{{{
    {} --Input string was not in a correct format.
    Press any key to continue . . .
      

  4.   

    借用cao版主的数据一用 List<string> query = new List<string>
                {
                    "我是一个好人,你信不信",
                    "我是一个好人{0},你信不信",
                    "我是一个好人{{0}},你信不信",
                    "我是一个好人{{{0}}},你信不信",
                    "我是一个好人{0}}},你信不信",
                    "我是一个好人{{0}}},你信不信",
                    "我是一个好人{{{{0}}}},你信不信",
                    "{{0}}",
                    "{{{0}",
                    "{0}}}",
                    "{{0}}",
                    "{{{{{{{{",
                    "{}"
                };
                string str = string.Join("", query);
                str = Regex.Replace(str, @"{((?<g>{)|(?<-g>})|\d+)*(?(g)(?!))}", "");