Skip to main content
Glama
rodhayl
by rodhayl

regex_helper

Generate regex patterns from natural language descriptions or explain existing regex patterns to understand their matching behavior.

Instructions

Explain regex or generate regex from natural language.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesAction: explain (explain pattern), generate (create from description)
patternNoFor explain: regex pattern to explain
descriptionNoFor generate: natural language description of what to match
examplesNoFor generate: example strings that should match (optional)
flavorNoRegex flavor (default: javascript)

Implementation Reference

  • Implementation of explainRegex tool handler in CodeAssistanceTools class.
      async explainRegex(
        pattern: string,
        options?: {
          flags?: string;
          generateExamples?: boolean;
        }
      ): Promise<ExplainRegexResult> {
        const flags = options?.flags ?? '';
        const includeExamples = options?.generateExamples ?? true;
    
        const prompt = `You are a regex expert. Explain this regular expression in plain English.
    
    Pattern: ${pattern}
    ${flags ? `Flags: ${flags}` : ''}
    ${includeExamples ? 'Include example matches and non-matches.' : ''}
    
    Provide your response as JSON:
    {
      "pattern": "${pattern}",
      "explanation": "Plain English explanation",
      "breakdown": [
        {"part": "regex part", "meaning": "what it matches"}
      ],
      "examples": [
        {"input": "example text", "matches": true, "matchedPart": "matched portion"}
      ]
    }`;
    
        try {
          const responseText = await this.llmWrapper.callToolLlm(
            'regex_helper',
            [
              { role: 'system', content: prompt },
              { role: 'user', content: `Explain this regex: /${pattern}/${flags}` },
            ],
            { type: 'explain_regex', pattern, flags }
          );
    
          const parsed = this.parseJsonResponse(responseText, {
            pattern,
            explanation: responseText,
            breakdown: [],
            examples: [],
          });
    
          return {
            success: true,
            pattern,
            explanation: parsed.explanation || '',
            breakdown: parsed.breakdown || [],
            examples: parsed.examples || [],
          };
        } catch (error) {
          return {
            success: false,
            pattern,
            explanation: '',
            breakdown: [],
            examples: [],
            error: error instanceof Error ? error.message : 'Unknown error',
          };
        }
      }
  • Implementation of generateRegex tool handler in CodeAssistanceTools class.
      async generateRegex(
        description: string,
        options?: {
          flavor?: 'javascript' | 'python' | 'pcre';
          examples?: string[];
        }
      ): Promise<GenerateRegexResult> {
        const flavor = options?.flavor ?? 'javascript';
    
        const prompt = `You are a regex expert. Generate a regular expression based on this description.
    
    Regex flavor: ${flavor}
    ${options?.examples ? `Examples that should match:\n${options.examples.join('\n')}` : ''}
    
    Provide your response as JSON:
    {
      "pattern": "the regex pattern (without delimiters)",
      "flags": "any flags like 'gi'",
      "explanation": "How the pattern works",
      "examples": [
        {"input": "example", "shouldMatch": true}
      ],
      "alternativePatterns": ["simpler or alternative patterns"]
    }`;
    
        try {
          const responseText = await this.llmWrapper.callToolLlm(
            'regex_helper',
            [
              { role: 'system', content: prompt },
              { role: 'user', content: `Generate a regex that matches: ${description}` },
            ],
            { type: 'generate_regex', flavor }
          );
    
          const parsed = this.parseJsonResponse(responseText, {
            pattern: '',
            explanation: responseText,
            examples: [],
          });
    
          return {
            success: true,

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rodhayl/mcpLocalHelper'

If you have feedback or need assistance with the MCP directory API, please join our Discord server