C#regex从字符串中删除BBCode颜色
如何检测所有[color x]和[/color]单词并将其全部删除?使用下面的正则表达式可以轻松获取文本: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个或更多字符,而不是[和] ]-文字
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));