如何找到以".."开头的字符串?

DoL*_*Sky 1 ruby regex

我试图找到字符串,后面只有"..",但无法得到:

["..ab","...cc","..ps","....kkls"].each do |x|
puts x if /../.match(x)
end
..ab
...cc
..ps
....kkls
=> ["..ab", "...cc", "..ps", "....kkls"]

["..ab","...cc","..ps","....kkls"].each do |x|
puts x if /(.)(.)/.match(x)
 end
..ab
...cc
..ps
....kkls
=> ["..ab", "...cc", "..ps", "....kkls"]
Run Code Online (Sandbox Code Playgroud)

预期产量:

["..ab","..ps"]
Run Code Online (Sandbox Code Playgroud)

Rei*_*ard 5

你想要的是什么

/^\.\.(?!\.)/
Run Code Online (Sandbox Code Playgroud)

^开头的插入符号表示匹配字符串的开头; 句点必须用反斜杠转义,\.因为在正则表达式中,普通句点.与任何字符匹配; 这(?!\.)是一个负面的预测意味着下一个字符不是句号.所以表达式意味着"在字符串的开头,匹配两个句点,后面必须跟一个不是句号的字符."

>> /^\.\.(?!\.)/.match "..ab"
=> #<MatchData "..">
>> /^\.\.(?!\.)/.match "...cc"
=> nil
Run Code Online (Sandbox Code Playgroud)