あなたの正規表現は、catastrophic backtracking(a demo of your regex hereを参照)(([\u00C0-\u1FFF\u2C00-\uD7FF]+[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]*)+)
に起因する部分が発生します。 [^a-z\u00C0-\u1FFF\u2C00-\uD7FF]*
は0文字と一致するため、基本的にはバックトラッキングの問題を引き起こす古典的な(a+)+
のパターン(cf:([\u00C0-\u1FFF\u2C00-\uD7FF]+)+
)があります。それを取り除くために
、あなたはサブパターンをグループ分け内強制であることを確認してください、そして、グループ全体へ*
数量詞を適用する必要があります。
^([\u00C0-\u1FFF\u2C00-\uD7FF]+(?:[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+[\u00C0-\u1FFF\u2C00-\uD7FF]+)*) [a-z]+[^\u00C0-\u1FFF\u2C00-\uD7FF]*$
はここregex demo
を参照してください、 [\u00C0-\u1FFF\u2C00-\uD7FF]+(?:[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+[\u00C0-\u1FFF\u2C00-\uD7FF]+)*
試合:
[\u00C0-\u1FFF\u2C00-\uD7FF]+
- 一つ以上の文字から[\u00C0-\u1FFF\u2C00-\uD7FF]
範囲
(?:[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+[\u00C0-\u1FFF\u2C00-\uD7FF]+)*
- ゼロ以上の配列:
[^a-z\u00C0-\u1FFF\u2C00-\uD7FF]+
- -
\u00C0-\u1FFF\u2C00-\uD7FF
範囲からの1つの以上の文字 - a-z\u00C0-\u1FFF\u2C00-\uD7FF
範囲
[\u00C0-\u1FFF\u2C00-\uD7FF]+
- からのもの以外の1つの以上の文字。
スタックされたとはどういう意味ですか?あなたはコンソールにこれを入力してフリーズしますか? – Cristy
'(([\ u00C0- \ u1FFF \ u2C00- \ uD7FF] + [^ az \ u00C0- \ u1FFF \)のために[致命的なバックトラッキング](https://regex101.com/r/eT6gL3/1) u2C00- \ uD7FF] *)+) 'の部分です。 [致命的なバックトラッキングに関する詳細はこちら](http://www.regular-expressions.info/catastrophic.html)。正規表現の実際の要件は何ですか? –
あなたは['^([\ u00C0- \ u1FFF \ u2C00- \ uD7FF] +(?)を探していますか?[^ az \ u00C0- \ u1FFF \ u2C00- \ uD7FF] + [\ u00C0- \ u1FFF \ u2C00- \ uD7FF] +)*)[az] + [^ \ u00C0- \ u1FFF \ u2C00- \ uD7FF] * $ '](https://regex101.com/r/eT6gL3/2)? –