比如 "我是一个好人{0},你信不信"我想把 {0} 这个 替换成""
注意我这里只是一个字符串,不是占位符。
有的字符串里包含这个,有的字符串里不包含这个。我怎么得到 "我是一个好人,你信不信" 这种呢?string.Format("我是一个好人{0}","")//这种不符合我的要求,因为有些字符串里可能不包含这个{0}
注意我这里只是一个字符串,不是占位符。
有的字符串里包含这个,有的字符串里不包含这个。我怎么得到 "我是一个好人,你信不信" 这种呢?string.Format("我是一个好人{0}","")//这种不符合我的要求,因为有些字符串里可能不包含这个{0}
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 . . .
string r = Regex.Replace(s, @"{\d+}", "");
Response.Write(r);
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 . . .
{
"我是一个好人,你信不信",
"我是一个好人{0},你信不信",
"我是一个好人{{0}},你信不信",
"我是一个好人{{{0}}},你信不信",
"我是一个好人{0}}},你信不信",
"我是一个好人{{0}}},你信不信",
"我是一个好人{{{{0}}}},你信不信",
"{{0}}",
"{{{0}",
"{0}}}",
"{{0}}",
"{{{{{{{{",
"{}"
};
string str = string.Join("", query);
str = Regex.Replace(str, @"{((?<g>{)|(?<-g>})|\d+)*(?(g)(?!))}", "");