カテゴリ: Kotlin 更新日: 2025/10/29

Kotlinの正規表現(Regex)の使い方をやさしく解説!文字列操作の基本を初心者向けに学ぼう

Kotlinの正規表現を使った文字列操作の基本
Kotlinの正規表現を使った文字列操作の基本

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

生徒

「Kotlinで、文字列の中から特定の文字や言葉を探したり、置き換えたりする方法ってありますか?」

先生

「はい、Kotlinでは正規表現(せいきひょうげん)というしくみを使って、文字列の中身を柔軟に操作することができますよ。」

生徒

「正規表現ってなんだか難しそうです……」

先生

「最初は少しとっつきにくいかもしれませんが、Kotlinでは簡単に使えるようになっているので、基本からやさしく説明しますね!」

1. 正規表現とは?Kotlinでも使える文字列検索の便利なしくみ

1. 正規表現とは?Kotlinでも使える文字列検索の便利なしくみ
1. 正規表現とは?Kotlinでも使える文字列検索の便利なしくみ

正規表現(せいきひょうげん、英語ではRegex=Regular Expression)とは、文字列の中で特定のパターンを見つけたり置き換えたりできる方法です。

たとえば、「数字だけ探したい」「メールアドレスの形式を確認したい」「特定の単語をすべて置き換えたい」など、ふつうの検索ではできないことができます。

Kotlinでは、Regexクラスを使って正規表現を利用します。次の章から使い方を見ていきましょう。

2. Regexクラスの基本的な使い方(検索)

2. Regexクラスの基本的な使い方(検索)
2. Regexクラスの基本的な使い方(検索)

まずは、文字列の中に特定のパターンが含まれているかどうかを調べる方法です。


fun main() {
    val text = "abc123xyz"
    val regex = Regex("[0-9]+")
    val found = regex.containsMatchIn(text)
    println("数字が含まれている? $found")
}

実行結果:


数字が含まれている? true

[0-9]は「0から9までの数字」、+は「1文字以上」を意味します。つまり「数字が1つ以上あるか?」という検索です。

3. findメソッドで実際に一致した文字列を取り出す

3. findメソッドで実際に一致した文字列を取り出す
3. findメソッドで実際に一致した文字列を取り出す

単に「あるかどうか」だけでなく、実際に見つかった文字を取り出すにはfindメソッドを使います。


fun main() {
    val text = "ユーザーID: user_456"
    val regex = Regex("[a-zA-Z0-9_]+")
    val result = regex.find(text)
    println("見つけた文字列: ${result?.value}")
}

実行結果:


見つけた文字列: user_456

find()は最初に見つかった文字列だけを取り出します。?.valueは「見つかっていれば値を表示する」という意味の書き方です。

4. 正規表現で文字列を置き換えるreplaceの使い方

4. 正規表現で文字列を置き換えるreplaceの使い方
4. 正規表現で文字列を置き換えるreplaceの使い方

正規表現は、文字列の一部を置き換えるときにも使えます。Kotlinではreplace()メソッドとRegexを組み合わせて使います。


fun main() {
    val input = "電話番号: 080-1234-5678"
    val regex = Regex("[0-9]{2,4}-[0-9]{2,4}-[0-9]{4}")
    val masked = input.replace(regex, "XXX-XXXX-XXXX")
    println(masked)
}

実行結果:


電話番号: XXX-XXXX-XXXX

[0-9]{2,4}は「2〜4桁の数字」を意味し、-でつながった3つの数字の組み合わせを見つけて、まとめて置き換えています。

5. 複数の一致をすべて取り出すfindAll

5. 複数の一致をすべて取り出すfindAll
5. 複数の一致をすべて取り出すfindAll

findAll()メソッドを使うと、文字列の中にあるすべての一致を取り出すことができます。


fun main() {
    val text = "apple, banana, orange123"
    val regex = Regex("[a-zA-Z]+")
    val results = regex.findAll(text)

    for (match in results) {
        println(match.value)
    }
}

実行結果:


apple
banana
orange

findAllはすべての一致を取り出せるので、リストなどにまとめて処理するのに便利です。

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

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

Kotlinの文字列処理で役立つ正規表現の例をいくつか紹介します。

  • [0-9]:数字
  • [a-z]:小文字アルファベット
  • [A-Z]:大文字アルファベット
  • [a-zA-Z]:英字すべて
  • \\d:数字([0-9]と同じ)
  • \\w:英数字とアンダースコア
  • \\s:空白
  • .+:1文字以上のなんでもOK

パターンをうまく組み合わせれば、複雑なルールのチェックや文字列の抽出も可能になります。

7. Kotlinで正規表現を使うときの注意点

7. Kotlinで正規表現を使うときの注意点
7. Kotlinで正規表現を使うときの注意点

Kotlinで正規表現を使う際には、次のような点に気をつけましょう。

  • エスケープ文字\\など)はKotlinの文字列内で2重になることがある
  • 正規表現の文法はシンプルに始めるのがコツ
  • 大文字小文字を区別せずに検索したいときは、Regex(pattern, RegexOption.IGNORE_CASE)と書く

最初は慣れが必要ですが、実用的な場面が多いので少しずつ使ってみましょう。

関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!
No.4
Java&Spring記事人気No4
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応