首页 > 解决方案 > 如何使用正则表达式获取内部颜色标签匹配?

问题描述

我有这个问题,我应该使用什么模式在其他颜色标签中查找所有富文本颜色标签?

所以例如我有这个输入:

<color=yellow>Hello <color=cyan>World!</color></color>

并通过替换为空字符串匹配的标签来删除,并将其作为输入:

<color=yellow>Hello World!</color>

它可能是更多的标签,例如:

<color=yellow>Hello my <color=cyan>name</color> is <color=gray>Kite <color=white>Watson!</color></color></color>

之后有这个:

<color=yellow>Hello my name is Kite Watson!</color>

我需要这个的原因是因为我使用正则表达式将代码荧光笔应用于文本框中的文本,并且一些关键字在注释中被着色,如下例所示

在此处输入图像描述

所以我想检查并删除颜色标签中是否有任何颜色标签,就像在这个评论示例中一样。

我对正则表达式很陌生,所以目前有点迷茫,不知道该怎么做。有人可以给我一些建议,我该如何做到这一点?:) 谢谢!

标签: c#regextagspattern-matchingrichtext

解决方案


删除除第一个和最后一个之外的所有标签,您可以使用以下正则表达式获得您想要的,

(?<!^)<[^>]*>(?!$)

这基本上匹配除了第一个和最后一个使用否定环视的所有标签。让我知道这是否适用于您的场景,否则我可以进一步加强正则表达式。

检查这个演示


推荐阅读