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

时间:2011-07-04 19:16:53

标签: c# regex bbcode

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

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

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

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

嗯,它几乎正常工作。

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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

在我的头顶,我会尝试这样的事情:

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

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