should have done 表示过去本该做而实际未做,与过去事实相反。“She should have arrived here by now.”这句是不成立的,时间不一致。 应该是:“She should have arrived here by then.”“到那时她本该到那里了,而实际未到。与过去事实相反”She should be here by now. 句子是可以的,意思是“到现在为止她应该到这儿了,(暗含她现在还没到,与现在事实相反)”She should know the news by now. “到现在为止她应该知道知道这个消息了”(暗含她现在可能还不知道,与现在事实相反)”She knew?the news before she read the newspaper . 是错句She should have known the news before she read the newspaper . 是对的。“在她(过去)读报纸之前,她本应该已经知道这条消息。(而实际不知道,与过去事实相反)”这些都是虚拟语气范畴的句子,与表面意思是相反的。