如何使用Regex查找RGB中两个连续的重复字符?

时间:2019-01-15 17:02:41

标签: c# regex

我正在尝试查找所有具有2x3连续数字的RGB数字。我的意思是这样的数字:

\#00FF11
\#66AA44
\#FF0000

我尝试写这篇文章:

\b#(([0-9a-zA-Z])\1){3}\b

但这不起作用。

问题出在哪里?我可能会说,问题出在\1周围,因为这是我不确定的唯一部分。

1 个答案:

答案 0 :(得分:2)

\1模式是对捕获组1的反向引用,即(([0-9a-zA-Z])\1)。您实际上要引用捕获组2,因此需要\2而不是\1

请注意,\b#仅与以字符char(字母,数字或#)开头的_匹配。您需要在\B开头使用非单词边界。

要匹配十六进制字符,最好使用[A-Fa-f]而不是[A-Za-z]

使用

@"\B#(?:([0-9a-fA-F])\1){3}\b"

使用逐字字符串文字,您无需在此处使用双转义反斜杠。