我正在尝试从字符串中删除所有 BBCode 标签。
[url]www.google.com[/url]
变成
www.google.com
我有一个可以在 php 中找到它们的正则表达式,只是不知道如何在 .net 中删除它们
正则表达式查找 BBCode
|[[\/\!]*?[^\[\]]*?]|si
您的正则表达式看起来不起作用,所以我尝试了另一个:
string s = "[url]www.google.com[/url] [url=www.google.com]www.google.com[/url]";
s = Regex.Replace(s, @"\[[^]]+\]", "");
结果:
www.google.com www.google.com
此外,您将需要在文件顶部使用此 using 语句来完成此工作:
using System.Text.RegularExpressions;
如果您使用Codekicker.BBCode库(this或that),那么此代码将去除已知的 bbcode 标签:
parser.ParseSyntaxTree(@"[url]www.google.com[/url] [url=www.google.com]www.google.com[/url]").ToText()
这将只去除已知的 BB 代码标签,您需要首先BBCodeParser
使用有关已用标签的信息创建实例。库使用的默认解析器是:
var parser = new BBCodeParser(ErrorMode.ErrorFree, null, new[]
{
new BBTag("b", "<b>", "</b>"),
new BBTag("i", "<span style=\"font-style:italic;\">", "</span>"),
new BBTag("u", "<span style=\"text-decoration:underline;\">", "</span>"),
new BBTag("code", "<pre class=\"prettyprint\">", "</pre>"),
new BBTag("img", "<img src=\"${content}\" />", "", false, true),
new BBTag("quote", "<blockquote>", "</blockquote>"),
new BBTag("list", "<ul>", "</ul>"),
new BBTag("*", "<li>", "</li>", true, false),
new BBTag("url", "<a href=\"${href}\">", "</a>", new BBAttribute("href", ""), new BBAttribute("href", "href")),
});
(需要自己创建,Codekicker.BBCode不会暴露这个对象)