Ruby Regex匹配灰度颜色

7 ruby regex

我想要一个红宝石正则表达式匹配十六进制灰度颜色.

所以它会匹配

#000000
#ababab
#ffffff
Run Code Online (Sandbox Code Playgroud)

但不是

#ccddcc
#afafa0
Run Code Online (Sandbox Code Playgroud)

等等

ram*_*ion 9

\h是十六进制的ruby正则表达式代码. (...)捕获子匹配,​​并\1让您引用第一个子匹配:

/#(\h\h)\1\1/
Run Code Online (Sandbox Code Playgroud)

in irb:

>> %w{ #000000 #ababab #ffffff #ccddcc #afafa0 }.map { |s| s =~ /#(\h\h)\1\1/ }
=> [0, 0, 0, nil, nil]                                                         
Run Code Online (Sandbox Code Playgroud)