カテゴリ: Go言語 更新日: 2026/05/30

Go言語のFindStringの使い方を完全解説!正規表現で文字列を検索・抽出する方法

Go言語の正規表現で文字列を検索・抽出する方法(FindString)
Go言語の正規表現で文字列を検索・抽出する方法(FindString)

先生と生徒の会話形式で理解しよう

生徒

「Go言語で、文字列の中から特定の部分だけ取り出すことってできますか?」

先生

「できますよ。Go言語では正規表現という仕組みを使って、文字列を検索したり抽出したりできます。」

生徒

「正規表現って難しそうですが、簡単に使えますか?」

先生

「基本だけ覚えれば大丈夫です。今回はFindStringという便利な方法を使って、簡単に文字列を取り出す方法を見ていきましょう。」

1. FindStringとは何か

1. FindStringとは何か
1. FindStringとは何か

Go言語のFindStringは、正規表現を使って文字列の中から条件に合う部分を見つけて、その最初の一致した文字列を取り出すための機能です。

正規表現とは、文字のパターンを指定して検索するための仕組みです。例えば数字だけ、英語だけ、特定の単語などを見つけることができます。

FindStringは、その中でも最初に見つかった一致部分だけを返すという特徴があります。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

まずは基本的な使い方を見てみましょう。Go言語ではregexpパッケージを使います。


package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("Go")
    result := re.FindString("I love Go language")

    fmt.Println(result)
}

実行結果


Go

この例では、文字列の中からGoという単語を探して、最初に見つかったGoを取り出しています。

3. 数字を抽出する方法

3. 数字を抽出する方法
3. 数字を抽出する方法

正規表現を使うと、数字だけを取り出すこともできます。数字は0から9までを表すパターンで指定します。


package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    result := re.FindString("商品番号は12345です")

    fmt.Println(result)
}

実行結果


12345

ここで使っているプラス記号は、1文字以上の繰り返しという意味です。つまり連続した数字をまとめて取得しています。

4. 英語だけを抽出する方法

4. 英語だけを抽出する方法
4. 英語だけを抽出する方法

アルファベットだけを取り出したい場合も簡単です。英字の範囲を指定します。


package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[a-zA-Z]+")
    result := re.FindString("123abc456")

    fmt.Println(result)
}

実行結果


abc

このように、文字の種類を指定することで柔軟に検索できます。

5. 一致しない場合の動作

5. 一致しない場合の動作
5. 一致しない場合の動作

FindStringは条件に一致する文字列が見つからない場合、空の文字列を返します。


package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("XYZ")
    result := re.FindString("Hello World")

    fmt.Println(result)
}

実行結果



何も表示されていないように見えますが、これは空文字が返されている状態です。

6. よく使う正規表現パターン

6. よく使う正規表現パターン
6. よく使う正規表現パターン

初心者がよく使うパターンをいくつか紹介します。

  • [0-9] 数字1文字
  • [a-z] 小文字英字
  • [A-Z] 大文字英字
  • . 任意の1文字
  • + 1回以上繰り返し

これらを組み合わせることで、複雑な検索もできるようになります。

7. FindStringとMatchStringの違い

7. FindStringとMatchStringの違い
7. FindStringとMatchStringの違い

FindStringとよく似た機能にMatchStringがあります。

MatchStringは一致するかどうかを真偽値で返しますが、FindStringは一致した文字列そのものを返します。

つまり、MatchStringは確認用、FindStringは抽出用と考えると分かりやすいです。

8. 初心者向けの考え方とコツ

8. 初心者向けの考え方とコツ
8. 初心者向けの考え方とコツ

正規表現は最初は難しく感じますが、文字の並び方のルールを決めるものと考えると理解しやすくなります。

例えば、電話番号を探す場合は数字が並んでいるというルールを作ります。メールアドレスなら英字と記号の組み合わせというルールになります。

FindStringはそのルールに合った最初の部分だけを見つけてくれる便利な道具です。

まずは簡単なパターンから試して、少しずつ慣れていくことが大切です。

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

Go言語のFindStringは、正規表現を使って文字列の中から条件に一致する最初の部分を取り出すための非常に便利な機能です。今回の記事では、Go言語の正規表現の基本からFindStringの使い方、数字の抽出、英字の抽出、一致しない場合の挙動、さらにMatchStringとの違いまで幅広く解説しました。:contentReference[oaicite:0]{index=0}

特に重要なのは、FindStringは最初に一致した部分のみを返すという特徴です。この性質を理解することで、ログ解析、データ抽出、テキスト処理などさまざまな場面で効率よく処理ができるようになります。Go言語での文字列検索やテキストデータ処理を行う際には、regexpパッケージとFindStringの組み合わせは必須の知識といえます。

また、正規表現の基本パターンである数字の範囲指定や英字の指定、繰り返しの指定などを理解することで、柔軟な検索条件を作ることが可能になります。例えば、商品番号の抽出、ユーザー入力の検証、ログファイルからの情報取得など、実務でもよく使われる場面が多く存在します。

初心者の方はまず、単純なキーワード検索から始めて、徐々に正規表現のパターンを組み合わせていくのがおすすめです。FindStringを使いこなせるようになることで、Go言語でのテキスト処理の理解が一気に深まり、実践的なプログラミングスキルが身につきます。

サンプルプログラムの復習


package main

import (
    "fmt"
    "regexp"
)

func main() {
    text := "注文番号はA12345です"
    re := regexp.MustCompile("[0-9]+")
    result := re.FindString(text)

    fmt.Println("抽出結果:", result)
}

実行結果


抽出結果: 12345

このように、FindStringを使うことで複雑な文字列の中から必要な情報だけを簡単に取り出すことができます。Go言語の正規表現とFindStringは、データ処理や自動化処理において非常に重要な役割を果たします。

先生と生徒の振り返り会話

生徒

「Go言語のFindStringって、文字列の中から必要な部分だけ取り出せるんですね。とても便利だと思いました。」

先生

「その通りです。特に正規表現と組み合わせることで、数字や英字など特定のパターンに一致するデータを簡単に抽出できます。」

生徒

「MatchStringとの違いも理解できました。MatchStringは一致するか確認するだけで、FindStringは実際に文字列を取り出すんですね。」

先生

「そうです。用途に応じて使い分けることが重要です。データを取得したい場合はFindString、条件判定だけならMatchStringを使うとよいでしょう。」

生徒

「正規表現は難しいイメージがありましたが、パターンを覚えれば使えそうです。」

先生

「最初は簡単なパターンから始めて、少しずつ複雑な条件に挑戦していくのがコツです。Go言語のFindStringを使いこなせれば、テキスト処理の幅が大きく広がりますよ。」

関連セミナーのご案内

【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導

「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。

本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。

具体的な開発内容と環境

【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。

【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。

この60分で得られる3つの理解

1. 環境構築の完全な理解

「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。

2. Go言語の基本構造(変数・型)

データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。

3. 読みやすいコードの書き方

ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。

※本講座は、将来的にバックエンドエンジニアクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。

セミナー画像

初めてのGo言語を一緒に学びましょう!

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinのクラスドキュメントコメントの書き方ガイド|初心者でもわかるKDocの基本と書き方
New2
Go言語
Go言語の関数設計パターン集!可読性と再利用性を高めよう
New3
Go言語
Go言語のインターフェースと抽象化の考え方を初心者向けに解説
New4
Kotlin
Kotlinのsorted・sortedByでコレクションをソートする方法【初心者向け完全ガイド】
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.2
Java&Spring記事人気No2
Swift
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Java&Spring記事人気No3
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.4
Java&Spring記事人気No4
Kotlin
Kotlinで画面遷移を実装しよう!初心者でもわかるIntentの使い方完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のマルチステージビルド完全解説!Dockerで軽量なコンテナを作る方法
No.6
Java&Spring記事人気No6
Go言語
Go言語の構造体を使った設計パターン集(DTO・VOなど)
No.7
Java&Spring記事人気No7
Kotlin
Kotlinの可視性修飾子を完全ガイド!public・private・internalの意味と使い分けを初心者向けに解説
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説