Twój regex powoduje catastrophic backtracking (patrz a demo of your regex here) z powodu (([\u00C0-\u1FFF\u2C00-\uD7FF]+[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]*)+)
część. Ponieważ [^a-z\u00C0-\u1FFF\u2C00-\uD7FF]*
może dopasować zero znaków, w zasadzie masz klasyczny wzór podobny do (porównaj: ([\u00C0-\u1FFF\u2C00-\uD7FF]+)+
), który powoduje problem z cofaniem.
Aby się go pozbyć, trzeba upewnić się, że podwzorów są obowiązkowego wewnątrz ugrupowania, a zastosowanie *
kwantyfikator do całej grupy:
^([\u00C0-\u1FFF\u2C00-\uD7FF]+(?:[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+[\u00C0-\u1FFF\u2C00-\uD7FF]+)*) [a-z]+[^\u00C0-\u1FFF\u2C00-\uD7FF]*$
Zobacz regex demo
Tutaj [\u00C0-\u1FFF\u2C00-\uD7FF]+(?:[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+[\u00C0-\u1FFF\u2C00-\uD7FF]+)*
mecze:
[\u00C0-\u1FFF\u2C00-\uD7FF]+
- jeden lub więcej znaków z [\u00C0-\u1FFF\u2C00-\uD7FF]
zakresy
(?:[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+[\u00C0-\u1FFF\u2C00-\uD7FF]+)*
- zero lub więcej sekwencji:
[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+
- jeden lub więcej znaków inne niż te z a-z\u00C0-\u1FFF\u2C00-\uD7FF
zakresach
[\u00C0-\u1FFF\u2C00-\uD7FF]+
- jeden lub więcej znaków z zakresów \u00C0-\u1FFF\u2C00-\uD7FF
.
Co masz na myśli przez utknięcie? Wchodzisz do tego w konsoli i zamarza? – Cristy
Po prostu powoduje [katastrofalne cofanie] (https://regex101.com/r/eT6gL3/1) z powodu '(([\ u00C0- \ u1FFF \ u2C00- \ uD7FF] + [^ az \ u00C0- \ u1FFF \ u2C00- \ uD7FF] *) +) 'część. Więcej informacji na temat [katastroficznego powrotu można znaleźć tutaj] (http://www.regular-expressions.info/catastrophic.html). Jakie są rzeczywiste wymagania dotyczące wyrażenia regularnego? –
Szukasz ['^ ([\ u00C0- \ u2FFF \ u2C00- \ uD7FF] + (?: [^ Az \ u00C0- \ u1FFF \ u2C00- \ uD7FF] + [\ u00C0- \ u1FFF \ u2C00- \ uD7FF] +) *) [az] + [^ \ u00C0- \ u2FFF \ u2C00- \ uD7FF] * $ '] (https://regex101.com/r/eT6gL3/2)? –