1
def get_hashtags(post)
tags = []
post.scan(/(?<![0-9a-zA-Z])(#+)([a-zA-Z]+)/){|x,y| tags << y}
tags
end
Test.assert_equals(get_hashtags("two hashs##in middle of word#"), [])
#Expected: [], instead got: ["in"]
如果它不看後面,看是否匹配犯規用一個詞或數字開頭?爲什麼它仍然接受'in'作爲有效的匹配?爲什麼這個消極看起來後面錯了?
因爲該模式成功的第二個#(這不是前面有'[0-9a-zA-Z]')。 –