赖世雄教你学英语语法
虚拟语气
5-6:but for
= if it were not for
若非/要不是……
此类句型仅限于与现在事实及过去事实相反的虚拟语气。
1.与现在事实相反:若非……就……
(if it were not/but for+名词)+(that从句/for+名词)+主语+(could/would/might/shold/ought to)+原形v
例:if it were not that he works hard, i wouldn't like him.
= if it were not for him hard work, i...
= were it not for his hard work. i...
= but for his hard work, i...
(要不是他很努力工作,我不会喜欢他。)
2.与过去事实相反:若非当时……就……
if it had not been+(that从句(过去时)/for+名词)+主语+(would/could/might/should/ought to)+have+p.p.
例:if it had not been that he lent me the money, i could not have bought that book.
= if it had not been for the money(which) he lent me, i...
= had it not been for the money(which) he lent me, i...
= but for the money(which) he lent me, i...
(要不是当时他借钱给我,我无法买到那本书。)
注意:but for亦可用介词without代替,之后仍接名词。
例:but for his help, i couldn't do it.
= without his help, i couldn't do it.
(若非他的帮忙,我无法办这事。)
but for his timely warnign, i might have been killed.
= without his timely warning, i might have been killed.
(若非他及时警告,我可能已经被杀了。)