SuperAPI AI Directory

regex-helper

Testing & quality

View repository

Updated 10-15 21:40

About this skill

Regex Helper Skill

This is a skill to generate, explain, and test regular expression patterns.

Overview

Easily create complex regular expressions and explain existing patterns in an easy-to-understand way.

Main Features

  • Pattern Generation: Automatically generate regular expressions from requirements
  • Pattern Explanation: Explain existing regular expressions in a human-readable form
  • Test Cases: Provide examples that match and examples that do not match
  • Optimization: Conversion to more efficient patterns
  • Debugging: Fixing patterns that do not work
  • Language Support: JavaScript, Python, Java, Go, etc.

Usage

Pattern Generation

以下の要件で正規表現を生成:
- メールアドレスの検証
- RFC 5322準拠
- サブドメイン対応

Pattern Explanation

以下の正規表現を説明:
^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

Generation Examples

Email Address

Requirements: Basic email address validation

Generated Pattern:

/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/

Explanation:

  • ^ - Start of string
  • [a-zA-Z0-9._%+-]+ - Username part (alphanumeric and some symbols)
  • @ - At sign (required)
  • [a-zA-Z0-9.-]+ - Domain name
  • \. - Dot (escaped)
  • [a-zA-Z]{2,} - Top-level domain (2 or more characters)
  • $ - End of string

Test Cases:

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

❌ マッチしない:
- invalid.email
- @example.com
- user@
- user@domain

Password Strength

Requirements:

  • 8 or more characters
  • At least 1 uppercase letter
  • At least 1 lowercase letter
  • At least 1 digit
  • At least 1 special character

Generated Pattern:

/^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/

Explanation:

  • (?=.*[A-Z]) - Lookahead: at least one uppercase letter is present
  • (?=.*[a-z]) - Lookahead: at least one lowercase letter is present
  • (?=.*\d) - Lookahead: at least one digit is present
  • (?=.*[@$!%*?&]) - Lookahead: at least one special character is present
  • [A-Za-z\d@$!%*?&]{8,} - 8 or more allowed characters

Test Cases:

✅ マッチする:
- Password123!
- Secure@Pass1
- MyP@ssw0rd

❌ マッチしない:
- password (大文字・数字・記号なし)
- PASSWORD123 (小文字・記号なし)
- Pass123 (7文字・記号なし)

URL Extraction

Requirements: Extract URLs from text

Generated Pattern:

r'https?://(?:www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_+.~#?&/=]*)'

Japanese Phone Number

Requirements: 03-1234-5678 format

Generated Pattern:

/^0\d{1,4}-\d{1,4}-\d{4}$/

Credit Card Number

Requirements: 16 digits, supports space/hyphen separators

Generated Pattern:

/^(?:\d{4}[-\s]?){3}\d{4}$/

Test Cases:

✅ マッチする:
- 1234 5678 9012 3456
- 1234-5678-9012-3456
- 1234567890123456

❌ マッチしない:
- 1234 5678 901 (短い)
- abcd-efgh-ijkl-mnop (英字)

Pattern Explanation Function

Input:

^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$

Output:

このパターンは **時刻(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埋めなし)

Optimization Function

Inefficient Pattern:

/^[0-9][0-9][0-9][0-9]$/

After Optimization:

/^\d{4}$/

Improvements:

  • [0-9] を \d Replace with (shorter and easier to read)
  • Express repetition with {4} with {4}

Patterns by Language

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();

Version Information

  • Skill version: 1.0.0
  • Last updated: 2025-01-22

Usage Examples:

以下の要件で正規表現を生成:
- 日本の郵便番号(123-4567形式)
- ハイフンあり・なし両対応
- テストケース含む

Patterns, explanations, and test cases are generated!