Explanation
Use "should have" and "ought to have" to say that something was the right thing in the past. They often show regret, criticism, or a missed chance. "Should have" is more common. "Ought to have" means the same, but it sounds more formal and less common.
In "You should have called me earlier," "You" is the subject, "should have" shows past duty or regret, and "called" is the past participle. Japanese often says "もっと早く電話してくれればよかった" or "電話すべきだった," but English puts that meaning in the modal form.
"should have" と "ought to have" は、過去にそうすべきだったことを言うときに使います。後悔、注意、批判、または逃したチャンスを表すことが多いです。"should have" のほうがよく使われます。"ought to have" も同じ意味ですが、よりフォーマルで、少し古風に聞こえます。
"You should have called me earlier." では、"You" が主語、"should have" が過去の義務や後悔、"called" が過去分詞です。日本語では "もっと早く電話してくれればよかった" や "電話すべきだった" と言いますが、英語ではその意味をこの形で表します。
Examples
- I should have studied harder. もっと勉強すればよかった。
- You ought to have told me the truth. あなたは本当のことを言うべきでした。
- We should have left earlier. 私たちはもっと早く出発すべきでした。
- Should I have called her last night? 昨夜、彼女に電話すべきでしたか。
- He shouldn't have spent all his money. 彼はお金を全部使うべきではありませんでした。
- They ought not to have parked here. 彼らはここに駐車するべきではありませんでした。
Common Mistakes
Japanese learners often write "I should have go" or "I ought have told you." After "have," English needs a past participle, so say "I should have gone" and "I ought to have told you." Also remember the "to" in "ought to have."
日本人学習者は "I should have go" や "I ought have told you" のように書きがちです。"have" の後ろは原形ではなく過去分詞なので、正しくは "I should have gone" と "I ought to have told you" です。"ought to have" の "to" を落とさないことも大切です。