regex-helper

ntaksh42's avatarfrom ntaksh42

Generate, explain, and test regular expressions with examples and test cases. Use when creating regex patterns or understanding complex regular expressions.

⭐0stars🔀1forks📁View on GitHub🕐Updated Dec 20, 2025

When & Why to Use This Skill

The Regex Helper skill is a comprehensive utility designed to simplify the creation, interpretation, and optimization of regular expressions. By converting natural language requirements into precise patterns and providing human-readable explanations for complex code, it helps developers eliminate syntax errors, improve code maintainability, and accelerate the development of data validation and extraction logic across multiple programming languages.

Use Cases

  • Input Validation: Generating robust patterns for verifying user data such as RFC-compliant emails, complex passwords, and international phone numbers.
  • Data Extraction: Creating specific regex to parse and extract structured information like URLs, timestamps, or credit card numbers from large blocks of unstructured text.
  • Legacy Code Analysis: Translating cryptic, existing regular expressions into plain English to understand their logic and potential edge cases.
  • Performance Optimization: Refactoring inefficient patterns into optimized versions to reduce backtracking and improve application execution speed.
  • Cross-Platform Implementation: Providing language-specific regex syntax and implementation examples for JavaScript, Python, Java, and Go.
nameregex-helper
descriptionGenerate, explain, and test regular expressions with examples and test cases. Use when creating regex patterns or understanding complex regular expressions.

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文字以上)
  • $ - 文字列の終了

テストケース:

✅ マッチする:
- user@example.com
- john.doe@company.co.jp
- test+tag@domain.com

❌ マッチしない:
- 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時間制)** にマッチします。

構造:
1. `^` - 文字列の開始
2. `(?:[01]\d|2[0-3])` - 時(00-23)
   - `[01]\d` - 00-19
   - `|` - または
   - `2[0-3]` - 20-23
3. `:` - コロン(区切り)
4. `[0-5]\d` - 分(00-59)
5. `:` - コロン(区切り)
6. `[0-5]\d` - 秒(00-59)
7. `$` - 文字列の終了

マッチ例:
✅ 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形式)
- ハイフンあり・なし両対応
- テストケース含む

パターン、説明、テストケースが生成されます!