2

我正在尝试从字符串中删除所有 BBCode 标签。

[url]www.google.com[/url]

变成

www.google.com

我有一个可以在 php 中找到它们的正则表达式,只是不知道如何在 .net 中删除它们

正则表达式查找 BBCode

|[[\/\!]*?[^\[\]]*?]|si
4

2 回答 2

2

您的正则表达式看起来不起作用,所以我尝试了另一个:

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;
于 2010-05-13T23:23:02.507 回答
0

如果您使用Codekicker.BBCode库(thisthat),那么此代码将去除已知的 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不会暴露这个对象)

于 2018-07-11T09:51:21.633 回答