文字列からすべての 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はこのオブジェクトを公開しません)