C#如何删除BBCode之间的文本

本文关键字:BBCode 之间 文本 删除 何删除 | 更新日期: 2023-09-27 18:01:00

如何删除BBCode报价(包括BBCode本身(之间的所有文本:

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

我必须补充一点,标记之间可以是带有HTML标记的文本进行格式化。我当前的尝试看起来像:

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

好吧,它几乎起作用了。

C#如何删除BBCode之间的文本

您可以尝试以下正则表达式:

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

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

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

在我的脑海中,我会尝试这样的东西:

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

请记住,我还没有在C#中测试过这一点,根据解释器的不同,C#的语法可能会有所不同。还要注意,我添加了选择组,这样您就可以检查每个表达式的结果。正如@Howard所回答的,[]是保留符号,因此需要转义。