Description
Estrattore enterprise di dati strutturati da testo non strutturato usando regex con FALLBACK CHAIN — il pattern critical per parsing robusto di pagine HTML/JSON/log/PDF che cambiano formato leggermente nel tempo (cambi di quote single→double, variazioni spacing, ordine random degli attributi). La tipica fragilità del regex singolo che funziona oggi e si rompe domani al primo deploy del publisher viene mitigata permettendo di definire 2-5 pattern alternativi per ogni campo target: il primo regex che matcha vince la priorità, gli altri sono fallback se il primo fallisce. Esempio canonico di estrazione di token da pagina web con fallback chain robusta: pattern 1 token:\\s*"([^"]+)" (formato JS object con virgolette doppie), pattern 2 token:\\s*\'([^\']+)\' (formato JS object con virgolette singole — variant comune per i developer che preferiscono single quote in JavaScript), pattern 3 "token":\\s*"([^"]+)" (formato JSON proper con key tra virgolette come standard RFC), pattern 4 \\btoken\\s*=\\s*([a-z0-9_-]{20,})\\b (formato URL query string o env var assignment senza virgolette per i token di formato Crockford-base32) — questa coverage 4× gestisce praticamente tutti gli scenari real-world dove un publisher potrebbe cambiare il formato del proprio output nel deploy successivo. Transform pipeline opzionale per ogni campo estratto: trim (elimina whitespace leading/trailing), lowercase/uppercase (normalize case per matching downstream), number (cast a numeric con parsing localized "1.234,56" italiano + "1,234.56" inglese), json (parse del valore come JSON nested object), none (raw passthrough senza modifica). Multi-field in singola invocation: l'utente definisce un dictionary di N field → ognuno con la sua fallback chain di regex, e il nodo li estrae tutti in singolo pass del testo (pattern efficiente vs invocare N nodi separati per N field). Cap di sicurezza: max 50 field per invocation, max 10 pattern per field, max 100KB di testo input per evitare regex catastrophic backtracking su input maligno. Output: { extracted: { fieldName1: { value, matchedPatternIndex, transform_applied }, fieldName2: {...}, ... }, totalFieldsExtracted, totalFieldsMissing, durationMs }. Use case: parsing di token JWT/CSRF/session_id da response HTML/JS di API non documentate (workflow di automation che simula login programmatic su sistemi legacy senza API REST disponibili); estrarre prezzo da HTML di e-commerce con multiple quote variants tra mobile/desktop version dello stesso sito; recovery di numero fattura/data fattura/totale da PDF testuale di vendor eterogenei (ogni fornitore ha format leggermente diverso → fallback chain copre tutti); capture pattern specifici da log applicativi per alert SLA (es. error code, response time, customer_id per detection di anomalie + pattern di failure analytics); migration di dati da export legacy text/CSV con format incomerente.
