should have、could have、would have:用真实例子讲过去情态

should have、could have、would have 有什么区别,还有表示推测的 must have 和 might have:配真实母语者片段,以及他们实际是怎么说的。

Roman Maksimyuk

Roman Maksimyuk

Reelang 首席语言教学法极客

10 分钟读完发布于 2026年10月27日

should have、could have 和 would have 都在讲过去,而且讲的都是「没有发生」的过去。区别在态度:

形式意思例句
should have + 过去分词本该这么做,但没做(后悔或责备)I should have called you.
could have + 过去分词当时有这个可能,但没发生I could have called you, but I was tired.
would have + 过去分词另一种过去会带来的结果(想象)I would have called you if I'd had your number.

所以,should have 是在评判过去,could have 是在列出你当时有过的选择,would have 是在想象另一种过去会是什么样。说话时,这三个都会缩成 should've、could've、would've,听起来几乎就是「shoulda」「coulda」「woulda」。

同一个结构(情态动词 + have + 过去分词)还有第二个用途:推测过去。「She must have left」表示你几乎可以肯定。「She might have left」表示也许。「She can't have left」表示你确定她没走。

下面每个形式都有简短说明,加上母语者真实使用的片段。讲完规则,还有一节讲人们实际怎么说,这和语法书上写的不总是一样。点字幕里的任何一个词就能看到它的意思。

结构:情态动词 + have + 过去分词

本文里的每个形式都是同一种搭法:

should / could / would / must / might / may / can't + have + 过去分词

  • I should have gone.
  • She could have won.
  • They would have seen it.
  • He must have forgotten.

有三点最容易绊住学习者:

  1. 「have」永远不变。 是 she should have,不是 she should has。情态动词后面的动词保持原形,have 就是原形。
  2. 第三个词是过去分词,不是一般过去式。是 I should have gone,不是 I should have went。(母语者经常打破这条规则,后面会讲。)
  3. 否定加在情态动词上:shouldn't have、couldn't have、wouldn't have。I should have not gone 这种说法存在,但很少见,听着很生硬。

should have:后悔与责备

should have 用来说那件本该做、却没做的事。说自己,是后悔;说别人,是责备。

在这个二手店购物视频里,一位博主想起自己试过却没买的东西。注意听「should have just switched out the buttons」:

智能字幕逐词中文释义

Butthebuttons,nowthatI'mthinkingaboutit,Ishouldhavejustswitchedoutthebuttonsandboughtitbecauseitwascute.

0:37 / 1:24
美式英语日常对话没问题
在 Reelang 上用它学习

这是典型的购物后悔。明明很好解决,当时没想到,现在东西没了。

下面是另一个二手店视频里更短的一句。听听「should've」有多快,就一拍:「SHUD-uv」。

智能字幕逐词中文释义

Ishould'vetriediton.

1:32 / 2:35
美式英语复杂话题也能聊
在 Reelang 上用它学习

把 should have 指向别人,它就变成了抱怨。「You should've told me」是电视剧里最常见的台词之一:

智能字幕逐词中文释义

Youshould'vetoldmeabouthimsooner.

0:07 / 2:06
英式英语复杂话题也能聊
在 Reelang 上用它学习

否定形式 shouldn't have 用来批评那件真的发生了的事。在这个场景里,女儿说出她对父亲离开的看法:

智能字幕逐词中文释义

Andheshouldn'thaveleftusforJane.

0:19 / 0:56
美式英语日常对话没问题
在 Reelang 上用它学习

你还会听到「I should have known」,意思是「迹象都摆在那儿,我却没看出来」。人们在被骗、被坑,或者朋友又做了他一贯会做的事之后,就会这么说。

could have:你没选的那些可能

could have 用来说过去有可能、但没发生的事。它不带评判,只是说当时那扇门是开着的。

一个很常见的用法是「things could have been worse」。风暴过后,记者和一家人站在砸到他们房子的那棵树旁边:

智能字幕逐词中文释义

Especiallyseeingthetreeontheleftsideofthehouseheretothinkifyouguysmaybewereshelteredonthatside,thingscouldhavebeenmuchdifferent.

1:26 / 3:25
美式英语日常对话没问题
在 Reelang 上用它学习

大家都平安,但很险。「Could have been much different」是一种客气、谨慎的说法,其实是在说「我们可能会丧命」。

could have 也能描述你当时有过、却没选的做法:「I could have taken the train, but I wanted to drive.」

could have 作为委婉的抱怨

把 could have 指向别人,效果像是语气更软的 should have。「You could have called」意思是「打个电话是做得到的,那你为什么不打?」加上「at least」,抱怨就更尖锐:

智能字幕逐词中文释义

Youyoucould'veatleastansweredmytextthelastfewdays.

2:24 / 3:21
美式英语复杂话题也能聊
在 Reelang 上用它学习

Couldn't have asked for a better...

否定形式 couldn't have 表示某件事不可能。有一个搭配在英语里到处都是:「I couldn't have asked for a better...」。意思是「这已经完美了」。不可能更好了,所以也没什么更好的可求。

智能字幕逐词中文释义

Ican'tbelieveit'smyfirsttimeinNewYork,andIcouldn'thaveaskedforabetterpersontoshowmearound.

0:00 / 1:30
美式英语有底子了
在 Reelang 上用它学习

你会在婚礼致辞、领奖感言和旅行 vlog 里听到它。「Couldn't have asked for better weather」是最经典的一句。

would have:那个没有发生的过去

would have 用来想象另一种过去,以及它的结果。多数时候它会带一个 if 从句,从句用过去完成时(had + 过去分词)。这就是第三类条件句:

If + had + 过去分词, ... would have + 过去分词

  • If I had known, I would have come.
  • If she'd asked me, I would have helped.

下面这个小短剧里用的就是教科书式的形式。注意听「If I'd known... I would have bought」:

智能字幕逐词中文释义

IfI'dknownhowhappytheywouldmakehim,IwouldhaveboughtthoseglassesforBoblongago.

1:13 / 2:17
美式英语日常对话没问题
在 Reelang 上用它学习

「I'd known」就是「I had known」。说话时 had 缩成 'd,would have 缩成 would've,所以整句话可能听成「If I'd known, I would've...」。'd 和 've 都很小声,要用心听。

不带「if」的 would have

if 从句常常是心照不宣的。「I would have loved to live in the 1950s」意思是「如果我生在那时候,我会很喜欢」:

智能字幕逐词中文释义

IwouldhavelovedtoliveinthenineteenfiftiesinallthisChristianDiorera.

1:56 / 3:31
英语日常对话没问题
在 Reelang 上用它学习

再看一个有意思的。「15 year old me would've...」是谈论年少的自己时常用的说法。if 从句藏在「15 year old me」里:如果我十五岁时发现了这个包。

智能字幕逐词中文释义

15yearoldmewould'vedroppedtomykneesforthisbag.

1:35 / 3:27
美式英语日常对话没问题
在 Reelang 上用它学习

「I never would've thought...」是另一个不带 if 的日常说法,意思是「我完全没想到会这样」。

must have、might have、can't have:推测过去

同一个结构还有第二个用途:根据眼前看到的情况,对过去做出推测。你有多确定,就决定用哪个情态动词:

确定程度形式例句
几乎确定发生了must haveShe must have left. Her coat is gone.
也许发生了might have / may have / could haveShe might have left early.
几乎确定没发生can't have / couldn't haveShe can't have left. Her coat is still here.

must have:我几乎能肯定

must have 是一个结论。你看到证据,推断出一定发生了什么。一位美食博主吃到非常嫩的鸡肉,推测它是怎么做的:

智能字幕逐词中文释义

Itmusthavebeensimmeringforhourstogetthattenderandjuicy.

0:21 / 0:59
美式英语日常对话没问题
在 Reelang 上用它学习

must have 还有一种温暖的用法。「That must have been hard」是在告诉对方,你理解他经历了什么。你没法确切知道他的感受,但你在猜,而这种猜测本身就是一种体谅:

智能字幕逐词中文释义

Thatmusthavebeensopainfultohearthat.

1:39 / 3:09
美式英语日常对话没问题
在 Reelang 上用它学习

如果你只想为日常对话学一个过去情态,就学这个。朋友跟你讲故事时,「That must have been scary」「that must have been so exciting」「you must have been exhausted」都能拿来回应。

might have 和 may have:也许

might have 和 may have 意思一样:这件事有可能发生过。might 在口语里更常见一些。这个视频列举了 quiz 这个词的各种来源说法。没人能确定,所以每种说法都用 might have:

智能字幕逐词中文释义

Somepeoplethinkitmighthavebeenaslangterm,meaningsomethingridiculous.

0:03 / 0:48
英语日常对话没问题
在 Reelang 上用它学习

may have 还有一个好玩的用法。人们会用「I may have...」来说一件自己明明就做了的错事。这是在开玩笑:说话的人假装不确定。「I may have eaten all the cookies」意思是「饼干都被我吃光了」。「I may have underestimated how cheesy that rice was」(来自一个真实的做饭视频)意思是那饭的芝士放得实在太多了。

can't have 和 couldn't have:不可能

can't have 和 couldn't have 表示你确信某事没发生,或者不是真的。「It couldn't have been easy for her」意思是「我敢肯定那对她很难」:

智能字幕逐词中文释义

Itcouldn'thavebeeneasyforher.

0:43 / 4:00
美式英语复杂话题也能聊
在 Reelang 上用它学习

注意:在美式英语里不能用「mustn't have」表达这个意思。must have 的反面是 can't have 或 couldn't have。(有些英国人确实会说「mustn't have」,但那不是标准形式。)

couldn't have 还能和比较级连用,表示某事好到或糟到不能再好、不能再糟。「It couldn't have been worse」意思是简直是场灾难。「She couldn't have been nicer」意思是她人非常好。

should've、could've、would've 听起来是什么样

写出来,你会看到 should have 和 should've。说出来,have 几乎总会缩短。h 消失,元音变成弱弱的「uh」,所以:

  • should have → should've → 「SHUD-uv」
  • could have → could've → 「KUD-uv」
  • would have → would've → 「WUD-uv」
  • must have → must've → 「MUST-uv」
  • might have → might've → 「MITE-uv」

在又快又随意的口语里,v 往往也掉了,于是就成了「shoulda」「coulda」「woulda」。这才是你从母语者那里最常听到的声音。如果你把 should have 完整说出来、h 发得很清楚,那听起来就是刻意或强调,比如「You really should HAVE told me」。

字幕几乎总是写标准拼法 should have 或 should've,哪怕说话的人明显说的是「shoulda」。所以看字幕时要有心理准备:屏幕上的字会比你听到的音长。

母语者实际上怎么说

上面的规则是写作和考试需要的。日常口语会在几个可预测的地方偏离它们。这些偏离都不罕见,而且都来自母语者。下面讲你会听到什么、谁在这么说、要不要跟着学。

should of、could of、would of

因为 should've 听起来和「should of」一模一样,很多母语者就这么写:「I should of known」「you could of told me」。这是英语里最常见的拼写错误之一,在评论、短信和社交媒体上到处都能看到。

在口语里,两者毫无区别。没人听得出你说的是「should've」还是「should of」。但在书面语里,「should of」永远是错的。那个词是 have,因为语法上那里需要一个动词。所以看到它要能看懂,但自己绝不要写,哪怕是随手发的短信,只要你希望自己的英语看起来讲究一点。(我们的字幕里不会出现它,因为字幕拼的是 should've 或 should have。)

shoulda、coulda、woulda

shoulda、coulda、woulda 是把口语的读音写了下来。你会在歌词、漫画、短信里看到它们,也会在「shoulda, coulda, woulda」这个说法里看到,它的意思是「别再念叨你当初没做的事了」。我们的字幕通常写成 should've 和 could've,但有时也会保留那个读音:

智能字幕逐词中文释义

YoushouldajustcheatedsoIcouldahadareasontoleaveyou.

0:03 / 1:00
美式英语日常对话没问题
在 Reelang 上用它学习

那是一个关于「情侣如果说实话会怎样」的短剧,两个形式出现在同一句里。下面是一位妈妈讲她的感恩节焗菜时说的 woulda:

智能字幕逐词中文释义

Iwouldaaddedmarshmallows,butmykidsatethemall.

1:42 / 2:33
美国南方英语有底子了
在 Reelang 上用它学习

要不要学?说,可以:快速英语本来就是这个样子。写,只在非常随意的消息里。

用「If I would have known」代替「if I had known」

教科书式的第三类条件句在 if 从句里用 had:「If I had known, I would have come.」在美式英语里,尤其是口语,很多人两半句都用 would have:「If I would have known, I would have come.」

你会从博主、新闻记者和电影明星那里听到它。下面是 Timothée Chalamet 的金球奖获奖感言,他开玩笑说自己在感谢《创智赢家》里的 Kevin O'Leary:

智能字幕逐词中文释义

IfyouwouldhavetoldmewhenIwas19yearsold,I'dbethankingmisterwonderfulfromSharkTank.Alright.

0:27 / 1:07
美式英语日常对话没问题
在 Reelang 上用它学习

「If you would have told me」是「if you had told me」的美式口语版本。下面这位博主在解释,这些万圣节奥利奥如果出现在她小时候,会对她意义多大:

智能字幕逐词中文释义

IfIwouldhavegottentheseonHalloweenasakid,Iwouldhavefreakedout.

1:01 / 1:35
美式英语有底子了
在 Reelang 上用它学习

语法书把这叫错误,在考试和正式写作里它确实是错的。但它在美国太常见了,你应该预料到会听到,而且很多美国人根本注意不到。英国人说得少得多。我们的建议:能听懂,不要写,说话时也用「if I had」或「if I'd」。这样在哪儿都没问题。

用「I could've went」代替「I could have gone」

记住第三个词:过去分词。遇到不规则动词时,很多母语者会用一般过去式:「should have went」「could've took」「would've saw」。这在美国的随意口语里很常见,尤其是南部和非裔美国人英语里,在英国你也会听到。

这则新闻讲的是一次踢歪的橄榄球射门,结果让医生发现了肿瘤。注意听记者之后的那一句:

智能字幕逐词中文释义

Itcould'vewentsomuchworse.

0:53 / 1:13
美式英语日常对话没问题
在 Reelang 上用它学习

标准说法是「it could have gone so much worse」。其他动词上也会听到同样的现象:「nobody would've saw me」(seen)、「you should've took his advice」(taken)、「she could've came」(come)。这些人说起来完全自然,大家也都听得懂。但在考试、求职申请或任何书面场合,请用分词:gone、taken、seen、come、done。

might could:两个情态动词叠在一起

在美国南部,以及它北边和西边的一些地区,人们会把两个情态动词叠起来用:「I might could help you」,意思是「我也许能帮你」。语言学家管这叫双重情态动词。它是地区性的、非正式的,在全国性电视上很少听到,但在地方台会冒出来。下面是内布拉斯加州奥马哈的一位天气播报员在讲接下来几天:

智能字幕逐词中文释义

Mightcoulddryout,Tuesday,Wednesdaywaverly.

2:15 / 2:21
美式英语日常对话没问题
在 Reelang 上用它学习

「Might could dry out」意思是「可能能放晴变干」,或者干脆就是「可能会变干」。除非你住在南部,否则别跟着说。但如果你去德州或阿拉巴马,有人对你说「we might could go tomorrow」,现在你知道他是什么意思了。

什么推测都用 must've

在对话里,must've 承担了大量工作。母语者几乎用它表达任何对过去的笃定推测,而且常常不给任何证据:「She must've known」「he must've forgotten」「I must've left it in the car」。这是标准英语,你可以放心学。

唯一要注意的是:口语里几乎从不把 have 的 h 发清楚。它是「MUST-uv」,有时干脆是「musta」。

问与答

should have、could have 和 would have 有什么区别?

三个都在讲一个没有发生的过去。should have 表示那是本该做的事(I should have called),could have 表示当时有可能(I could have called, but I was tired),would have 描述另一种过去会带来的结果(I would have called if I'd had your number)。

说 should of 对吗?

不对。书面上正确的形式是 should have 或 should've。人们写成 should of,是因为 should've 在口语里听起来和它一模一样,但语法上那里需要动词 have。

「if I would have known」正确吗?

在标准英语里,正确的形式是「if I had known」或「if I'd known」。「If I would have known」在美式口语里非常常见,但在考试和正式写作中算错误。

must have been 是什么意思?

must have been 是根据证据对过去做出的笃定推测。「It must have been cold」意思是你几乎可以肯定当时很冷。「That must have been hard」也是一种体谅的说法,表示你理解对方经历了什么。

must have 和 might have 有什么区别?

must have 表示你几乎确定某事发生过。might have 表示有可能,但你不确定。must have 的反面是 can't have 或 couldn't have,不是 mustn't have。

是 should have gone 还是 should have went?

should have gone 才对,因为 have 后面的动词要用过去分词。很多母语者在随意口语里会说 should have went,但写作和考试里请用 gone。

should've、could've、would've 怎么读?

have 会缩成一个很弱的「uv」音,所以 should've 听起来像「SHUD-uv」。在快speech里 v 也常常消失,于是就成了 shoulda、coulda、woulda。

怎样熟悉过去情态

语法表能帮你把这些形式搭出来。但在正常语速下听懂它们,是另一种能力。「Shoulda」「musta」「I'd known」半秒就过去了,只有在真实语流里听过很多次,你才抓得住。Reelang 就是为此而生的:母语者的短视频,字幕可点,难度贴合你的水平。

从适合你水平的英语视频开始,或者直接打开 app,让信息流替你挑。每次有人说 should've、could've 或 must've,试着把那个 've 听出来。

开始观看

真实的英语视频,按难度分级。没有测验,不用注册。

观看英语