我正在尝试查找所有具有2x3连续数字的RGB数字。我的意思是这样的数字:
\#00FF11
\#66AA44
\#FF0000
我尝试写这篇文章:
\b#(([0-9a-zA-Z])\1){3}\b
但这不起作用。
问题出在哪里?我可能会说,问题出在\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"
使用逐字字符串文字,您无需在此处使用双转义反斜杠。