Jakiś czas temu odpowiedziałem na pytanie this question, ale nadal nie wiem, dlaczego moja odpowiedź zadziałała.Dlaczego (?! ^) Jest równoważne (? <! ^)?
Z jakiegoś powodu, ujemny przodek wyprzedzający dla początku ciągu zachowuje się tak samo, jak negatywny lookbehind.
Na przykład w PHP
preg_replace("/(?!^)12/", "ab", "12345"); // 12345
preg_replace("/(?<!^)12/", "ab", "12345"); // 12345
preg_replace("/(?!1)23/", "ab", "12345"); // 1ab45
preg_replace("/(?<!1)23/", "ab", "12345"); // 12345
wiem, że nie jest to najbardziej użyteczne pytanie kiedykolwiek zapytał, ale zostało to dręczące mnie przez kilka tygodni.
Dzięki, taki rodzaj ma sens, ale myślę, że potrzebuję nocnego odpoczynku, żeby pozwolić mu się zanurzyć. –