C# 字符串替换自[到]

C# 字符串替换自[到],c#,string,formatting,C#,String,Formatting,我正在用C语言编写一个研究编译器,目前正试图从维基百科中获取信息。我的问题是维基百科上的信息都是用方括号括起来的,例如[1]、[46]、[77] 我怎样才能删除所有这些,而不必手动将它们全部放入字符串数组中,我已经尝试过了,但其中一些非常高,200+ 谢谢。理论上,你可以用正则表达式模式,\\[^\\s]*\\\],理论上应该返回括号和括号的内部内容 // Sample: var sample = @"Richard was killed fighting Henry Tudor in 1485

我正在用C语言编写一个研究编译器,目前正试图从维基百科中获取信息。我的问题是维基百科上的信息都是用方括号括起来的,例如[1]、[46]、[77]

我怎样才能删除所有这些,而不必手动将它们全部放入字符串数组中,我已经尝试过了,但其中一些非常高,200+


谢谢。

理论上,你可以用正则表达式模式,\\[^\\s]*\\\],理论上应该返回括号和括号的内部内容

// Sample:
var sample = @"Richard was killed fighting Henry Tudor in 1485[1] Following his death, Richard's body was stripped naked and taken to Leicester[2][3]";
var content = Regex.Replace(sample, "\\[([^\\s]*)\\]", String.Empty);
Console.WriteLine(content);

// Output:
Richard was killed fighting Henry Tudor in 1485 Following his death, Richard's body was stripped naked and taken to Leicester

不确定这是否是您想要的,但希望它能有所帮助。

这将使用正则表达式从输入字符串中删除[]内的任何内容:

string regex = "(\\[.*\\])";
string output = Regex.Replace(input, regex, string.Empty);

你能查一下字符串吗。Replace方法还显示了你当前的编码逻辑,这样我们就可以看到你是如何实现和/或使用字符串数组的。字符串上的Replace方法并不真正适合你所需要的。您可能需要考虑使用更快的算法来优化较长的文本,例如Boyer Moore字符串匹配算法。