سؤال

أحاول إزالة جميع علامات BBCode من سلسلة.

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

يصبح

www.google.com

لديّ regex يعمل في PHP للعثور عليهم جميعًا ، فقط لا أعرف كيفية إزالتها في .NET

Regex للعثور على 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 System.Text.RegularExpressions;

نصائح أخرى

أنا تستخدم Codekicker.bbcode مكتبة (هذه أو الذي - التي) ثم سيقوم هذا الرمز بتجريد علامات 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 لا يعرض هذا الكائن)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top