Dovolte mi citovat dokumentaci první:
Z dokumentace vidíme důvod vašeho problému a není způsoben jakýmkoli únikem. Problém je v tom, že se pokoušíte porovnat hranici slova [[:<:]]
hned na začátku řetězce, což nebude fungovat, protože hranice slova, jak můžete vidět z dokumentace, odděluje znak slova od znaku, který není slovem, ale ve vašem případě je prvním znakem "
což není znak slova, takže neexistuje žádná hranice slova, totéž platí pro poslední "
a [[:>:]]
.
Aby to fungovalo, musíte svůj výraz trochu změnit na tento:
"[[:<:]]word[[:>:]]"
^^^^^^^ ^^^^^^^
Všimněte si, jak hranice slova odděluje neslovný znak "
ze slovního znaku w
na začátku a "
od d
na konci řetězce.
UPRAVIT: Pokud chcete vždy použít hranici slova na začátku a konci řetězce, aniž byste věděli, zda tam bude skutečná hranice, můžete použít následující výraz:
([[:<:]]|^)"word"([[:>:]]|$)
To bude odpovídat buď hranici slova na začátku, nebo začátku řetězce ^
a totéž pro konec hranice slova nebo konec řetězce. Opravdu vám doporučuji, abyste si prostudovali data, která se snažíte porovnat, a hledali společné vzorce a nepoužívejte regulární výrazy, pokud nejsou pro danou práci tím správným nástrojem.