Witajcie,
zwracam się do Was z prośbą o pomoc w ułożeniu instrukcji, która umożliwi mi wyszukiwanie całych słów w mojej bazie wg następującego schematu: najpierw słowa niebędące częścią wyrażeń, a dopiero potem tworzące wyrażenia. Potrzebuję tego do zapewnienia odpowiedniej kolejności wyświetlania haseł w słowniku. Problem teoretycznie jest banalny, ale niestety nie mogę znaleźć rozwiązania - szukałem po Sieci i nic...
Pisząc konkretnie, chodzi o to, żeby tak zmodyfikować wyrażenie:
regexp '[[:<:]]tekst[[:>:]]' (na moje potrzeby wystarcza również: regexp '[^a-z]tekst[^a-z]')
żeby oddzielić przypadki, w których słowo nie jest poprzedzane przez inne słowo i żadne słowo nie następuje po nim (zamiast tego jest np. znak interpunkcyjny lub nawias zamykający/otwierający tag html) od tych , w których takie coś ma miejsce. Coś w rodzaju:
regexp '[^a-z][^a-z]tekst[^a-z][^a-z]' dla opcji pierwszej
oraz
regexp '[a-z][^a-z]tekst[^a-z]|[^a-z]tekst[^a-z][a-z]' dla opcji drugiej,
tylko że to kompletnie nie chce działać - nie wiem, jaka składnia jest prawidłowa. Próbowałem wszelkich kombinacji, np. z {2}, kropkami, przecinkami, dwukropkami i nic. Boję się powoli, że może jest to niemożliwe do zrobienia?... Ale to byłoby dziwne...
Przepraszam, temat właściwie do zamknięcia, bo pewne oczywiste rzeczy pominąłem - przykłady modyfikacji, które wskazałem, jednak działają. :wstydnis:
Po prostu struktura haseł sprawia, że mimo to nie jest tak, jak sobie wymarzyłem - co z tego, że szuka dwóch znaków niealfabetycznych, skoro wyraz okalają tagi, które mają litery... Kolejna próba optymalizacji wyszukiwarki spełzła na niczym, a baza ma strukturę totalnie zabałaganioną i nie da się jej prosto i szybko poprawić...