これまでの正規表現の研究で、バックトラッキングが発生するたびに、現在「バックトラッキングスポットにある」トークンは展開しようとするという結論に達しました(ただし、その後に遅延量指定子が続く場合、たとえば x*?最初に "x" をつかんだものは別の x をつかんで "xx" にしようとします) または縮小します (貪欲な量指定子が後に続く場合のみ; x* は、最初に "xxx" をつかんだ x* を保持するために 1 つの x を解放しようとします " xx」)。これらのアクションは、トークンに続く量指定子のタイプによって厳密に決定されると理解しています。
しかし、これは、正規表現チュートリアルのこのセクションで提供されている情報と矛盾しています: http://www.regular-expressions.info/catastrophic.html。
著者は、検索される文字列の例を示しています-
"1,2,3,4,5,6,7,8,9,10,11,12,13" and regex - "^([^,\r\n]*,){11}P".
[^,\r\n]
さらに彼は次のように述べています。それ以上のオプションを試すことなく、すぐに反復します。」
この「拡張」という言葉は、私を非常に混乱させるものです。トークンがバックトラックした場合、この時点でトークンが拡大しようとすることはありますか? 正規表現は次のように記述されている必要があります:"^([^,\r\n]*?,){11}P",
問題はありませんが、バックトラックの概念が正しいかどうか疑問に思って
います.?
誰かがこれに光を当てることができますか?