正規表現の基礎:ゼロからテキストマッチングをマスターする
正規表現とは?
正規表現(Regular Expression、略してRegex)は、文字列マッチングパターンを記述するためのツールです。以下に使用できます:
- 入力形式の検証(メールアドレス、電話番号など)
- テキストの検索と置換
- 特定の情報の抽出
- データのクリーニングと処理
基本構文
リテラル文字
最も簡単な正規表現は、それ自体と一致する通常の文字です:
``
hello は "hello" と一致
123 は "123" と一致
`
特殊文字(メタ文字)
| 文字 | 意味 |
|---|
. | 任意の単一文字と一致 |
|---|
^ | 文字列の開始と一致 |
|---|
$ | 文字列の終了と一致 |
|---|
| 前の文字を0回以上一致 |
|---|
+ | 前の文字を1回以上一致 |
|---|
? | 前の文字を0回または1回一致 |
|---|
\ | 特殊文字をエスケープ |
|---|
文字クラス
`
[abc] a、b、またはcと一致
[a-z] 任意の小文字と一致
[0-9] 任意の数字と一致
[^abc] a、b、c以外の任意の文字と一致
`
定義済み文字クラス
`
\d 数字と一致、[0-9]と同等
\D 数字以外と一致
\w 単語文字(文字、数字、アンダースコア)と一致
\W 単語文字以外と一致
\s 空白文字と一致
\S 空白文字以外と一致
`
量指定子
`
{n} 正確にn回一致
{n,} 少なくともn回一致
{n,m} n回からm回一致
`
グループ化とキャプチャ
括弧 () を使用してキャプチャグループを作成:
`
(abc)+ 1つ以上の "abc" と一致
(\d{4})-(\d{2})-(\d{2}) 日付形式と一致
`
一般的な正規表現の例
メールアドレス検証
`
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
`
電話番号検証(中国)
`
^1[3-9]\d{9}$
`
URLマッチング
`
https?:\/\/[\w\-]+(\.[\w\-]+)+[\w\-.,@?^=%&:/~+#]
`
中国語文字
`
[\u4e00-\u9fa5]+
`
JavaScriptで正規表現を使用する
`javascript
// 正規表現を作成
const regex = /hello/i; // iは大文字小文字を区別しないことを意味
// 一致をテスト
regex.test('Hello World'); // true
// 一致を検索
'Hello World'.match(/\w+/g); // ['Hello', 'World']
// 置換
'Hello World'.replace(/World/, 'Regex'); // 'Hello Regex'
``
EfficToolsで正規表現をテストする
正規表現を学ぶ最良の方法は実践です。正規表現テストツールを使用すると、以下ができます:
- 正規表現をリアルタイムでテスト
- ハイライトされた一致結果を表示
- キャプチャグループの内容を表示
- 複数のフラグをサポート
学習のヒント
まとめ
正規表現は、学習に時間を投資する価値のあるスキルです。最初は複雑に見えるかもしれませんが、基本構文をマスターすれば、テキスト処理の強力なアシスタントになります。