我有一组字符串:
] .
] ..
] .hu
] ..ha
] ho.
] harr..
每行是一个字符串。我想匹配除前两个以外的任何内容。另一个也可以包含其他字符-不仅像示例字符串中的[a-z]。
我尝试了很多变化,例如:
\]\s+([^\.]{1,2}).*$
但是我不明白。
答案 0 :(得分:4)
lines = %|] .
] ..
] .hu
] ..ha
] ho.
] harr..|.split($/)
# ⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓
lines.select { |l| l =~ /\].*?(?=[^ \.])/ }
#⇒ ["] .hu", "] ..ha", "] ho.", "] harr.."]
上面的意思是“一切,紧接着是空格和点。”
或者,正如@WiktorStribiżew在评论中建议的那样:
lines.select { |l| l !~ /\A\s*]\s*\.{1,2}\z/ }
答案 1 :(得分:0)