C#regex从字符串中删除BBCode颜色

C#regex从字符串中删除BBCode颜色,c#,regex,C#,Regex,如何检测所有[color x]和[/color]单词并将其全部删除?使用下面的正则表达式可以轻松获取文本: string s = "I am an example of [color red]being colored[/color] at [color blue] any time[/color]"; 正则表达式匹配: \[/?-一个文本[和它后面的可选/(?表示1或0次重复) color\b-一个完整的单词color(\b是单词边界) [^][]*-0个或更多字符,而不是[和] ]-文字

如何检测所有[color x]和[/color]单词并将其全部删除?

使用下面的正则表达式可以轻松获取文本:

string s = "I am an example of [color red]being colored[/color] at [color blue] any time[/color]";
正则表达式匹配:

  • \[/?
    -一个文本
    [
    和它后面的可选
    /
    表示1或0次重复)
  • color\b
    -一个完整的单词
    color
    \b
    是单词边界)
  • [^][]*
    -0个或更多字符,而不是
    [
    ]
  • ]
    -文字
    ]


Lucas Trzesniewski的解决方案有效:


Regex.Replace(text,@“[/?color\b.*?]”,string.Empty)

Regex.Replace(text,@“\[/?color\b.*?]”,string.Empty)
如果BBtags内部不能包含
[
]
,我的解决方案更健壮。如果BBCode可以包含
[
但不能包含
]
,而不是
\[/code>,您应该使用
\[/?color\b[^]]*]
[^]
否定字符类可以匹配除
]
以外的任何字符。如果BBCode可以包含
[
但不能包含
]
,而不是
\[/?color\b.*.\]
,则应使用
\[/?color\b[^]*]
[^]]
否定字符类可以匹配除
]
以外的任何字符。
\[/?color\b[^][]*]
string s = "I am an example of [color red]being colored[/color] at [color blue] any time[/color]";
Console.WriteLine(Regex.Replace(s, @"\[/?color\b[^][]*]", string.Empty));