Pozwolę sobie zacytować dokumentację po pierwsze:
Z dokumentacji możemy zobaczyć przyczynę problemu i nie jest on spowodowany ucieczką. Problem polega na tym, że próbujesz dopasować granicę słowa [[:<:]]
na samym początku ciągu, co nie zadziała, ponieważ granica słowa, jak widać z dokumentacji, oddziela znak słowa od znaku niebędącego słowem, ale w twoim przypadku pierwszym znakiem jest "
który nie jest znakiem słowa, więc nie ma granicy słowa, to samo dotyczy ostatniego "
i [[:>:]]
.
Aby to zadziałało, musisz nieco zmienić swoje wyrażenie na to:
"[[:<:]]word[[:>:]]"
^^^^^^^ ^^^^^^^
Zwróć uwagę, jak granica słowa oddziela znak niebędący słowem "
od znaku słowa w
na początku i "
z d
na końcu ciągu.
EDYTUJ: Jeśli zawsze chcesz używać granicy słowa na początku i na końcu ciągu, nie wiedząc, czy istnieje rzeczywista granica, możesz użyć następującego wyrażenia:
([[:<:]]|^)"word"([[:>:]]|$)
To dopasuje granicę słowa na początku lub początek ciągu ^
i to samo dla końca granicy słowa lub końca ciągu. Naprawdę radzę przestudiować dane, które próbujesz dopasować, i szukać wspólnych wzorców i nie używać wyrażeń regularnych, jeśli nie są one odpowiednim narzędziem do pracy.