カテゴリ: Swift 更新日: 2025/12/11

Swift正規表現入門!Regex BuilderとNSRegularExpressionを初心者向けに解説

Swift 正規表現入門|Regex BuilderとNSRegularExpression
Swift 正規表現入門|Regex BuilderとNSRegularExpression

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

生徒

「Swiftで文字列の中から特定のパターンを探したいんですけど、どうすればいいですか?」

先生

「それには正規表現(せいきひょうげん)という便利な方法を使います。SwiftにはRegex BuilderNSRegularExpressionといった仕組みがあり、文字列の中からメールアドレスや電話番号など特定の形を見つけることができます。」

生徒

「なんだか難しそうですね…。プログラミング初心者でも使えるんですか?」

先生

「大丈夫です。身近な例を交えながら、わかりやすく説明していきますよ!」

1. 正規表現とは?

1. 正規表現とは?
1. 正規表現とは?

正規表現とは「文字のパターンを表現する方法」です。例えば、「数字だけを探したい」「メールアドレスっぽい文字を見つけたい」といったときに使います。正規表現を使うと、単なる文字検索では難しい複雑な条件を一発で判定できます。

イメージとしては、郵便物を仕分けするときの「ルール表」のようなものです。「住所に東京都と書いてあればこの箱に入れる」といった感じで、文字列を自動でチェックできます。

2. SwiftのRegex Builderを使う

2. SwiftのRegex Builderを使う
2. SwiftのRegex Builderを使う

Swift 5.7からはRegex Builderという新しい書き方が追加されました。これを使うと、従来の難解な記号だらけの正規表現を、読みやすく組み立てられます。


import RegexBuilder

let pattern = Regex {
    OneOrMore(.digit)
}

let text = "電話番号は12345です"
if let match = text.firstMatch(of: pattern) {
    print(match.0)
}

このコードは、文字列の中から「数字が連続している部分」を探します。結果として「12345」が見つかります。


12345

OneOrMore(.digit)は「数字が1回以上」という意味です。直感的に書けるので初心者でもわかりやすいのが特徴です。

3. NSRegularExpressionを使う

3. NSRegularExpressionを使う
3. NSRegularExpressionを使う

NSRegularExpressionは昔からある正規表現の仕組みです。少し難しそうに見えますが、まだまだ現場ではよく使われています。


import Foundation

let text = "メールはsample@example.comです"
let pattern = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"

let regex = try! NSRegularExpression(pattern: pattern)
let matches = regex.matches(in: text, range: NSRange(text.startIndex..., in: text))

for match in matches {
    if let range = Range(match.range, in: text) {
        print(text[range])
    }
}

この例では「メールアドレスっぽい文字列」を探しています。実行すると「sample@example.com」が抽出されます。


sample@example.com

正規表現のパターンは一見複雑ですが、「@の前後に英数字があって、最後にドットとアルファベットが続く」というルールを表しています。

4. Regex BuilderとNSRegularExpressionの違い

4. Regex BuilderとNSRegularExpressionの違い
4. Regex BuilderとNSRegularExpressionの違い

ここまで紹介した2つの方法には次のような違いがあります。

  • Regex Builder: Swift専用の新しい書き方。読みやすく初心者にも理解しやすい。
  • NSRegularExpression: 古くからある方法。複雑なパターンも自由に書けるが、記号が多くて難しく感じやすい。

初心者の方はまずRegex Builderを使い、既存のコードや他のエンジニアが書いたサンプルを見るときにNSRegularExpressionも覚えるとよいでしょう。

5. 実生活にたとえて理解しよう

5. 実生活にたとえて理解しよう
5. 実生活にたとえて理解しよう

正規表現は一見難しそうですが、身近な例に置き換えると理解しやすいです。例えばスーパーで「値札に100円と書かれている商品だけを選びたい」というとき、数字の部分だけを見つけて判断します。これが「数字を探す正規表現」です。また、「@マークが入っている文字列だけを探す」のは「メールアドレスを見つける正規表現」です。

つまり、正規表現は大量の文字の中から「必要なものだけをフィルターにかける仕組み」だと考えるとイメージしやすいでしょう。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

6. まとめて実践コード

6. まとめて実践コード
6. まとめて実践コード

最後にRegex BuilderとNSRegularExpressionをまとめて比較できるサンプルコードを紹介します。


import Foundation
import RegexBuilder

let text = "ユーザーID: abc123, メール: test@example.com"

// Regex Builderで数字を抽出
let numberPattern = Regex { OneOrMore(.digit) }
if let match = text.firstMatch(of: numberPattern) {
    print("数字: \(match.0)")
}

// NSRegularExpressionでメールを抽出
let mailPattern = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"
let regex = try! NSRegularExpression(pattern: mailPattern)
let matches = regex.matches(in: text, range: NSRange(text.startIndex..., in: text))
for match in matches {
    if let range = Range(match.range, in: text) {
        print("メール: \(text[range])")
    }
}

このコードでは「数字」と「メールアドレス」の両方を抽出できます。


数字: 123
メール: test@example.com
関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

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

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のスコープとは?ローカル変数・グローバル変数の違いと使い分け
New2
Go言語
Go言語の構文ルールまとめ!インデント・セミコロンなど最初に知っておくポイント
New3
Kotlin
KotlinのwithTimeoutでタイムアウト処理を設定しよう!初心者にもわかる非同期の安全な止め方
New4
Go言語
Go言語のマップの順序保証がない理由と扱い方の工夫をやさしく解説!初心者でもわかる基本知識
人気記事
No.1
Java&Spring記事人気No1
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語
Go言語でREST APIを作る設計と実装パターン完全ガイド!初心者でもわかるAPI開発
No.3
Java&Spring記事人気No3
Go言語
Swiftの配列(Array)の使い方を完全ガイド!初心者でもわかるデータのまとめ方
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Kotlin
Kotlinのsettings.gradleファイルを完全解説!初心者でもわかるプロジェクト設定の基本
No.6
Java&Spring記事人気No6
Go言語
Go言語のトランザクション処理を完全解説!Begin・Commit・Rollbackを初心者向けにやさしく理解
No.7
Java&Spring記事人気No7
Go言語
Swiftの変数と定数の使い方を完全ガイド!初心者でもわかる基本文法
No.8
Java&Spring記事人気No8
Go言語
Go言語のgo installコマンドの役割とインストール先の仕組みを徹底解説!