1

我想知道如何使用 C# 和 RegEx 从字符串中轻松删除特定值。我有以下 HTML 字符串:

Add [tt]PEELED PLUM SHAPED TOMATOES in tomato juice[/tt][rg]WHOLE PEELED TOMATOES[/rg][rp]WHOLE   PEELED TOMATOES in JUICE[/rp], basil, oregano, parsley, salt, black pepper, sugar, [tt]TOMATO SAUCE[/tt][rg]TOMATO SAUCE[/rg][rp]TOMATO SAUCE[/rp], [brand][rg]TOMATO PASTE[/rg][rp]TOMATO PASTE[/rp]

我需要一些方法来过滤掉这部分:

[tt]PEELED PLUM SHAPED TOMATOES in tomato juice[/tt]

所以应该删除 [tt] 标签以及介于两者之间的文本。如果 [tt] 标记在源字符串中多次出现,则也应将其删除。

这可以通过使用 RegEx 来实现吗?

谢谢,丹尼尔

4

1 回答 1

1

是的。只要[tt]标签从不嵌套,就很容易:

result = Regex.Replace(subject, @"\[tt\].*?\[/tt\]", "", RegexOptions.Singleline);

如果您确实期望嵌套[tt]标签,那么您需要重复应用以下命令,对于每个嵌套级别一次:

result = Regex.Replace(subject, @"\[tt\](?:(?!\[/?tt\]).)*\[/tt\]", "", RegexOptions.Singleline);
于 2012-12-20T09:40:38.580 回答