如何使用正则表达式在 RGB 中查找两个连续的重复字符?

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

\#00FF11
\#66AA44
\#FF0000

我试过写这个:

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

但这不起作用。

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


繁花如伊
浏览 111回答 1
1回答

jeck猫

该\1模式是对捕获组 1 的反向引用,即(([0-9a-zA-Z])\1). 您实际上想参考 Capturing group 2,因此需要\2而不是\1.请注意,\b#只会匹配#前面带有单词 char(字母、数字或_)的字符。您需要在开头使用非单词边界,\B.要匹配十六进制字符,[A-Fa-f]最好比[A-Za-z].利用@"\B#(?:([0-9a-fA-F])\1){3}\b"使用逐字字符串文字,您不需要在此处使用双转义反斜杠。
打开App,查看更多内容
随时随地看视频慕课网APP