我想知道如何使用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来实现吗?
谢谢, 丹尼尔
答案 0 :(得分:1)
是。只要[tt]
标签永远不会嵌套,就很容易:
result = Regex.Replace(subject, @"\[tt\].*?\[/tt\]", "", RegexOptions.Singleline);
如果您确实需要嵌套的[tt]
标记,那么您需要重复应用以下命令,每个嵌套级别一次:
result = Regex.Replace(subject, @"\[tt\](?:(?!\[/?tt\]).)*\[/tt\]", "", RegexOptions.Singleline);