1.have been
我去过好几次上海了
现在完成时用来表示现在之前已发生过或完成的动作或状态,但其结果却和现在有联系,也就是说,动作或状态发生在过去但它的影响现在还存在.
I have spent all of my money.(含义是:现在我没有钱花了.)
Jane has laid the table.(含义是:现在桌子已经摆好了.)
Michael has been ill.(含义是:现在仍然很虚弱)
He has returned from abroad.(含义是:现在已在此地)
say/saying
个人感觉都可以
hear sb say 指听到他说的整个话(整个过程)
hear sb saying 听到他正说(局部片段)