输入:我发现[B]不是[/ B]执行此操作的一种方法。
输出将是:我发现这样做的一种方法。
我的代码:
string input = "I found [B]not a[/B] a single way [B]to do[/B] doing this.";
string regex = "\\[(.*?)\\]";
string output = Regex.Replace(input, regex, "");
Console.WriteLine(output);
答案 0 :(得分:1)
所以这是一个经过测试的解决方案,它可以正常工作:
string output = Regex.Replace("I found [B]not a[/B] a single way [B]to do[/B] doing this.", @"\[.?\].*?\[\/.?\]", "");
如何?好了,技巧是删除匹配[something] [/something]
之间的所有内容,标记之间的文本表示为.?
答案 1 :(得分:1)
这应该可以解决问题:
Regex.Replace("I found [B]not a[/B] a single way [B]to do[/B] doing this.", @"\[(.*?)].*?\[/\1]", "", RegexOptions.IgnoreCase);
打破现状
\[(.*?)]
-这将匹配[]中的任何标签,例如[B],并捕获标签(不包括[]).*?
会将所有内容匹配到模式的下一个部分\[/\1]
将匹配相应的[/ TAG] 我随意添加了IgnoreCase,以便它不区分大小写地匹配。
答案 2 :(得分:0)