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
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action: explain (explain pattern), generate (create from description) | |
| pattern | No | For explain: regex pattern to explain | |
| description | No | For generate: natural language description of what to match | |
| examples | No | For generate: example strings that should match (optional) | |
| flavor | No | Regex flavor (default: javascript) |
Implementation Reference
- src/tools/code-assistance.ts:866-928 (handler)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', }; } } - src/tools/code-assistance.ts:933-975 (handler)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,