(g)
に進みましょう。動名詞の完了形です。
「having+過去分詞」のカタチでその文の動詞より前に起こったことを表します。本来であれば過去形を使うところで、前置詞の後だったり、動名詞を目的語にとる動詞だったりしてどうしても動名詞にしなければならないケースがあります。そんな時に動詞の過去形にingをつけるわけにはいかないので、「having+過去分詞」のカタチにして、時制のズレを表してあげているのです。
例文を見てください。「=」のあとの書きかえの方から見てください。
メインの動詞はamで現在です。That以下はsaidでsayの過去形です。時制がズレています。
ここでその上の文を見てください。前置詞forがあるので、そのあとは名詞にしたいところです。今回は動名詞にするのに、過去形にingをつけるわけにもいきませんし、そのままでは時制のズレを表せないので「having+過去分詞」のカタチ、今回はhaving saidにしているのです。
日本語訳に進みましょう。
be sorry for ~ 「~に対して申し訳なく思う」という意味です。for以下は理由です。「ごめんなさい」でもいい時もありますが、「残念に思う」とか「申し訳なく思う」と訳す方がいいことが多いので頭に入れておいてください。
「そんなことを言ってしまって申し訳なく思う」