我正在尝试查找所有具有 2x3 连续数字的 RGB 数字。我的意思是这样的数字:
\#00FF11
\#66AA44
\#FF0000
我尝试过这样写:
\b#(([0-9a-zA-Z])\1){3}\b
但这不起作用。
问题出在哪里?我可能会说,问题出在 \1
周围,因为这是我唯一不太确定的部分。
最佳答案
\1
模式是对捕获组 1 的反向引用,即 (([0-9a-zA-Z])\1)
。您实际上想要引用捕获组 2,因此需要 \2
而不是 \1
。
请注意,\b#
仅匹配前面带有单词字符(字母、数字或 _
)的 #
。您需要在开头使用非单词边界,\B
。
要匹配十六进制字符,[A-Fa-f]
比 [A-Za-z]
更好。
使用
@"\B#(?:([0-9a-fA-F])\1){3}\b"
使用逐字字符串文字,您不需要在此处使用双转义反斜杠。
关于c# - 如何使用正则表达式查找 RGB 中两个连续的重复字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54203601/