tuo regex provoca catastrophic backtracking (vedi a demo of your regex here) a causa di (([\u00C0-\u1FFF\u2C00-\uD7FF]+[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]*)+)
parte. Dato che [^a-z\u00C0-\u1FFF\u2C00-\uD7FF]*
può corrispondere a zero caratteri, in pratica si ha un modello classico (a+)+
(cf: ([\u00C0-\u1FFF\u2C00-\uD7FF]+)+
) che causa un problema di backtracking.
di sbarazzarsi di esso, è necessario assicurarsi che i sottopattern sono obbligatoria all'interno del raggruppamento, e applicare un quantificatore *
a tutto il gruppo:
^([\u00C0-\u1FFF\u2C00-\uD7FF]+(?:[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+[\u00C0-\u1FFF\u2C00-\uD7FF]+)*) [a-z]+[^\u00C0-\u1FFF\u2C00-\uD7FF]*$
Vedi regex demo
Qui, [\u00C0-\u1FFF\u2C00-\uD7FF]+(?:[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+[\u00C0-\u1FFF\u2C00-\uD7FF]+)*
incontri:
[\u00C0-\u1FFF\u2C00-\uD7FF]+
- uno o più caratteri da [\u00C0-\u1FFF\u2C00-\uD7FF]
intervalli
(?:[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+[\u00C0-\u1FFF\u2C00-\uD7FF]+)*
- zero o più sequenze di:
[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+
- uno o più caratteri diversi da quelli delle gamme a-z\u00C0-\u1FFF\u2C00-\uD7FF
[\u00C0-\u1FFF\u2C00-\uD7FF]+
- uno o più caratteri dal \u00C0-\u1FFF\u2C00-\uD7FF
intervalli.
fonte
2016-02-17 11:13:26
Cosa intendi con bloccato? Lo inserisci nella console e si blocca? – Cristy
Causa solo [backtracking catastrofico] (https://regex101.com/r/eT6gL3/1) a causa di '(([\ u00C0- \ u1FFF \ u2C00- \ uD7FF] + [^ az \ u00C0- \ u1FFF \ u2C00- \ uD7FF] *) +) 'parte. Maggiori dettagli su [backtracking catastrofico possono essere trovati qui] (http://www.regular-expressions.info/catastrophic.html). Quali sono i requisiti effettivi per la regex? –
Stai cercando ['^ ([\ u00C0- \ u1FFF \ u2C00- \ uD7FF] + (?: [^ Az \ u00C0- \ u1FFF \ u2C00- \ uD7FF] + [\ u00C0- \ u1FFF \ u2C00- \ uD7FF] +) *) [az] + [^ \ u00C0- \ u1FFF \ u2C00- \ uD7FF] * $ '] (https://regex101.com/r/eT6gL3/2)? –