カテゴリ: Swift 更新日: 2026/06/24

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

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

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

生徒

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

先生

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

生徒

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

先生

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

1. 正規表現とは?

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

正規表現(せいきひょうげん)とは、「文字の並び方=パターン」を条件として指定し、文字列の中から当てはまる部分を見つけ出すための仕組みです。単純に「この文字が含まれているか」を調べるだけでなく、「数字が続いている部分」や「@が入った文字列」など、人が感覚的に判断しているルールをプログラムで表現できます。

たとえば、申込フォームで「数字だけが入力されているか」を確認したり、文章の中から「電話番号らしき文字」を探したりする場面でよく使われます。文字を一つずつ確認する必要がなく、条件に合う部分をまとめてチェックできるのが大きな特徴です。

イメージとしては、郵便物を仕分けする際の「決まりごと」に近いです。「数字が書いてあるものだけ」「@マークが入っているものだけ」といったルールを先に決めておくことで、あとは自動的に振り分けられます。

まずは「正規表現=文字のルールを決めて探す道具」と覚えておくと、後の理解がぐっと楽になります。

とても簡単な例として、「文字列の中に数字が含まれているか」を正規表現で調べてみましょう。


import Foundation

let text = "注文番号は123です"
let pattern = "\\d+"   // 数字が1回以上続く、という意味

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

if result != nil {
    print("数字が含まれています")
}

このサンプルでは、「\\d+」というルールを使って数字を探しています。細かい記号の意味は今は理解できなくても問題ありません。「こう書くと数字を探せるんだな」という感覚をつかめれば十分です。

2. SwiftのRegex Builderを使う

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

Swift 5.7からは、正規表現をより安全で読みやすく書けるRegex Builderが使えるようになりました。これまでの正規表現は、記号が多く「何をしているのか分からない」と感じる初心者の方も多かったと思いますが、Regex Builderなら英語の文章のように組み立てて書けるのが大きな特徴です。

まずは、プログラミング未経験の方でも理解しやすい、とてもシンプルな例を見てみましょう。ここでは「文字列の中から数字が続いている部分を見つける」処理を行います。


import RegexBuilder

let numberRegex = Regex {
    OneOrMore(.digit)
}

let message = "注文番号は98765です"
if let result = message.firstMatch(of: numberRegex) {
    print(result.0)
}

このプログラムでは、まずRegexBuilderを読み込み、Regexの中で条件を定義しています。OneOrMore(.digit)は「数字(digit)が1文字以上続く」という意味です。難しい記号を覚えなくても、何を探しているのかがコードから直感的に分かります。

実行すると、文章の中に含まれる数字のかたまりが見つかり、次のように表示されます。


98765

このように、Regex Builderを使えば「数字を探す」「特定の文字の並びを見つける」といった処理を、安全かつ読みやすい形で実装できます。正規表現が初めての方でも、Swiftのコードとして自然に理解できる点が大きなメリットです。

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円と書かれている商品だけを選びたい」というとき、数字の部分だけを見つけて判断します。これが「数字を探す正規表現」です。また、「@マークが入っている文字列だけを探す」のは「メールアドレスを見つける正規表現」です。

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

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

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

Swift実践入門をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

Swift 正規表現入門では、正規表現入門をSwiftで扱うときの考え方を確認しました。Swift文字列処理は、書き方だけを覚えるよりも、Xcodeで動かしながら「どこで値が変わるのか」「失敗したときに何が起きるのか」を見たほうが理解しやすくなります。

理解を深める軸:正規表現入門を実務に近づけるには、日本語、英数字、空文字を入力して、countやUTF-8変換の結果を比べるところまで試すのがおすすめです。String、Character、UTF-8、Data、文字数、バイト数、多言語対応もあわせて押さえると、検索時の判断もしやすくなります。

仕上げの練習

  • 正規表現入門で注目する場所として、文字数とバイト数の違い、日本語や絵文字を含む文字列、Data変換の失敗を説明できる
  • 日本語、英数字、空文字を入力して、countやUTF-8変換の結果を比べる
  • Xcodeのエラー、警告、コンソール出力を読み、原因を1つ言葉にできる
  • Swift、Xcode、iOSアプリ開発の中で、この記事の知識を使う場面を想像できる

復習するときは、次のような短いコードを自分の環境で動かしてみましょう。記事のテーマに合わせて値や条件を変えると、Swiftの型安全、Optional、エラー処理、画面更新の見え方が少しずつ整理できます。

let text = "カフェ"
print(text.count)
print(Array(text.utf8))

if let data = text.data(using: .utf8) {
    print(data.count)
}

生徒

「正規表現入門は、どこを変えて試せばいいか分かると復習しやすいですね。」

先生

「はい。まずは小さく動かし、次に失敗するケースを1つ足してみましょう。Swiftは型やエラーがヒントを出してくれるので、結果を見ながら直す練習がそのまま実務力につながります。」

関連セミナーのご案内

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
TypeScript
TypeScriptのwhile文とは 初心者でもわかる繰り返し処理の基本と使い方を徹底解説
New2
Kotlin
Kotlinの制御構造まとめ!初心者が覚えるべきポイント
New3
Go言語
Go言語のスライスの容量(cap)と長さ(len)を理解しよう
New4
Kotlin
Kotlinとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.2
Java&Spring記事人気No2
Go言語
Go言語のVSCode開発環境構築完全ガイド!初心者でもわかる拡張機能と設定方法
No.3
Java&Spring記事人気No3
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.4
Java&Spring記事人気No4
Kotlin
Kotlinの関数ドキュメンテーションコメント(KDoc)の書き方を徹底解説!初心者でもわかる丁寧なガイド
No.5
Java&Spring記事人気No5
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.6
Java&Spring記事人気No6
Kotlin
Kotlinで画面を作る!レイアウトXMLとビューの基本操作をやさしく解説
No.7
Java&Spring記事人気No7
Swift
Swift入門ガイド|基本構文と書き方をマスターしよう
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptのif文とは何かを徹底解説初心者でもわかる条件分岐の基本構文と使い方

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク