)で囲んだ箇所が抽出されます。/https://[a-z.]*(.[a-z]{2,3})/?/試してみましょう。以下のようなスクリプトを書いてみました。}}ちゃんとトップレベルドメインも抽出されていますね。配列の並びを変えるpreg_match_allはデフォルトでこんな感じの配列が返ってきます。場合によってはこの配列の並びが面倒なこともあるかもしれません。並びを変えることもできますよ。第4引数にPREG_SET_ORDERを適用します。}}こんな感じの並びになるわけです。要素を同時に連続的に処理するならこっちの方が良いかもしれません。複数抽出してみたら?URL全体とプロトコル部分(https://)とトップレベルドメインを抽出してみます。)で囲まれた場所が2つになりました。)で囲んでいる箇所が先になります。}}カッコを入れ子にしてみたら?URL全体とドメイン部分(https://以外の場所)とトップレベルドメインを抽出してみます。)が入れ子になりました。)で抽出した箇所が先になります。)で囲まれた箇所がマッチしない場合どうなるでしょうか?ちょっと例文を変えてテストしてみます(強引な感じの例文)。この例文からドメイン部分とトップレベルドメインを抽出するとします。例文では故意にドメイン部分が抽出できないURL(http://hoge.com)を入れています。抽出箇所を複数にすることで配列の並びに影響があるか確認してみます。http://hoge.abc.comhttp://hoge.dfg.comhttp://hoge.hij.comhttp://hoge.com正規表現はこんな感じです。/http://hoge.?[a-z]*(.com)/抽出できなかった箇所は””(空文字)になりますので、配列がずれることはないようです。foreachなどで処理する際も安心デス。}}後記このことを勉強するまで、欲しい要素を抽出するために何度も正規表現処理をかけていました。すごく苦労したよ...。こんな便利なものもっと早く言ってよ...。今回の記事の内容に関してはPHPマニュアルの以下のページに説明があります。mino長年働いていた会社をリストラされてしまったおっさん。なにを思ったか未経験のプログラミングで再起を図ろうとする。プログラミングを勉強していく上で苦しんだこと、ハマったことを中心に記事を書きます。