Regex Helper Skill
正規表現パターンを生成・説明・テストするスキルです。
概要
複雑な正規表現を簡単に作成し、既存のパターンを理解しやすく説明します。
主な機能
-
パターン生成: 要件から正規表現を自動生成
-
パターン説明: 既存の正規表現を人間が読める形で説明
-
テストケース: マッチする例、しない例を提供
-
最適化: より効率的なパターンへの変換
-
デバッグ: 動作しないパターンの修正
-
言語対応: JavaScript、Python、Java、Go等
使用方法
パターン生成
以下の要件で正規表現を生成:
- メールアドレスの検証
- RFC 5322準拠
- サブドメイン対応
パターン説明
以下の正規表現を説明: ^(?=.[A-Z])(?=.[a-z])(?=.\d)(?=.[@$!%?&])[A-Za-z\d@$!%?&]{8,}$
生成例
メールアドレス
要件: 基本的なメールアドレス検証
生成パターン:
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/
説明:
-
^
-
文字列の開始
-
[a-zA-Z0-9._%+-]+
-
ユーザー名部分(英数字と一部記号)
-
@
-
アットマーク(必須)
-
[a-zA-Z0-9.-]+
-
ドメイン名
-
.
-
ドット(エスケープ)
-
[a-zA-Z]{2,}
-
トップレベルドメイン(2文字以上)
-
$
-
文字列の終了
テストケース:
✅ マッチする:
❌ マッチしない:
- invalid.email
- @example.com
- user@
- user@domain
パスワード強度
要件:
-
8文字以上
-
大文字1文字以上
-
小文字1文字以上
-
数字1文字以上
-
特殊文字1文字以上
生成パターン:
/^(?=.[A-Z])(?=.[a-z])(?=.\d)(?=.[@$!%?&])[A-Za-z\d@$!%?&]{8,}$/
説明:
-
(?=.*[A-Z])
-
先読み: 大文字が1つ以上存在
-
(?=.*[a-z])
-
先読み: 小文字が1つ以上存在
-
(?=.*\d)
-
先読み: 数字が1つ以上存在
-
(?=.[@$!%?&])
-
先読み: 特殊文字が1つ以上存在
-
[A-Za-z\d@$!%*?&]{8,}
-
許可文字で8文字以上
テストケース:
✅ マッチする:
- Password123!
- Secure@Pass1
- MyP@ssw0rd
❌ マッチしない:
- password (大文字・数字・記号なし)
- PASSWORD123 (小文字・記号なし)
- Pass123 (7文字・記号なし)
URL抽出
要件: テキストからURL を抽出
生成パターン:
r'https?://(?:www.)?[-a-zA-Z0-9@:%.+~#=]{1,256}.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%+.~#?&/=]*)'
日本の電話番号
要件: 03-1234-5678 形式
生成パターン:
/^0\d{1,4}-\d{1,4}-\d{4}$/
クレジットカード番号
要件: 16桁、スペース/ハイフン区切り対応
生成パターン:
/^(?:\d{4}[-\s]?){3}\d{4}$/
テストケース:
✅ マッチする:
- 1234 5678 9012 3456
- 1234-5678-9012-3456
- 1234567890123456
❌ マッチしない:
- 1234 5678 901 (短い)
- abcd-efgh-ijkl-mnop (英字)
パターン説明機能
入力:
^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$
出力:
このパターンは 時刻(HH:MM:SS形式、24時間制) にマッチします。
構造:
^- 文字列の開始(?:[01]\d|2[0-3])- 時(00-23)[01]\d- 00-19|- または2[0-3]- 20-23
:- コロン(区切り)[0-5]\d- 分(00-59):- コロン(区切り)[0-5]\d- 秒(00-59)$- 文字列の終了
マッチ例: ✅ 00:00:00 ✅ 12:34:56 ✅ 23:59:59
マッチしない例: ❌ 24:00:00 (24は無効) ❌ 12:60:00 (60分は無効) ❌ 1:2:3 (0埋めなし)
最適化機能
非効率なパターン:
/^[0-9][0-9][0-9][0-9]$/
最適化後:
/^\d{4}$/
改善点:
-
[0-9] を \d に置換(短く読みやすい)
-
繰り返しを {4} で表現
言語別パターン
JavaScript (ECMAScript)
const emailRegex = /^[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,}$/i; const isValid = emailRegex.test(email);
Python
import re email_pattern = r'^[a-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{2,}$' is_valid = re.match(email_pattern, email, re.IGNORECASE)
Java
String emailPattern = "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$"; Pattern pattern = Pattern.compile(emailPattern, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(email); boolean isValid = matcher.matches();
バージョン情報
-
スキルバージョン: 1.0.0
-
最終更新: 2025-01-22
使用例:
以下の要件で正規表現を生成:
- 日本の郵便番号(123-4567形式)
- ハイフンあり・なし両対応
- テストケース含む
パターン、説明、テストケースが生成されます!