【问题标题】:C# How to remove text between BBCodeC#如何删除BBCode之间的文本
【发布时间】:2011-07-04 19:16:53
【问题描述】:

如何删除 BBCode Quotation 之间的所有文字(包括 BBCode 本身):

[quote date=2011-07-02 14:43:53 user=test link=1]blabla[/quote]

我必须补充一点,标签之间可以是带有 HTML 标签的文本以进行格式化。 我目前的尝试如下:

Regex regex = new Regex(@"[quote+].+?[/\+quote]");

嗯,它几乎可以工作了。

【问题讨论】:

    标签: c# regex bbcode


    【解决方案1】:

    你可以试试下面的正则表达式:

    @"\[quote.*\].*?\[/quote\]"
    

    请注意,您必须在正则表达式中转义方括号。

    【讨论】:

      【解决方案2】:

      由于您的 BBCode 块包含属性,一个简单的 + 不足以涵盖所有内容。 + 表示重复指定范围的字符,在本例中为 e

      在我的脑海中,我会尝试这样的事情:

       \[quote([^\[]*)\](.*?)\[\/quote\]
      

      请记住,我没有针对 C# 测试过这个,其中语法可能因解释器而异。另请注意,我添加了选择组,以便您能够检查每个表达式的结果。正如@Howard 回答的那样,[ and ] 是保留符号,因此需要转义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-22
        • 1970-01-01
        • 2019-08-22
        • 1970-01-01
        • 2013-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多