Claude Code Plugins

Community-maintained marketplace

Feedback

regex-helper

@ntaksh42/agents
0
0

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

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name regex-helper
description Generate, 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形式)
- ハイフンあり・なし両対応
- テストケース含む

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