Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: RegExp - pełne słowa
Forum PHP.pl > Forum > Po stronie przeglądarki
athabus
Witam,

próbuję ułożyć wyrażenie regularne, które pozwoli mi znaleźć pełne słowo w tekście. Problem jest banalny dopóki mamy do czynienia ze słowami angielskimi. Jeśli pojawiają się polskie znaczki to wyrażenia typu /w+ nie działąją. Wiem już, że to problem z Unicodem, ale czy można jakoś to obejść?

z góry dzięki za odpowiedzi.
erix
Można obejść tworząc całą klasę (znaków) ręcznie dopisując polskie krzaczki.
zeulus
preg_match i \p{L} który jest odpowiednikiem \w ; musisz wtedy dodać modyfikator "u" na końcu wyrażenia. Więcej pod adresem: http://www.php.net/manual/en/regexp.reference.unicode.php lub http://blog.adiasz.pl/tag/regexp/
erix
Tylko że jest taki szczegół, iż temat dotyczy javascriptowego obiektu RegExp.
Snickers01
A czy przypadkiem "pełne słowo" nie jest poprzedzone białym znakiem i nie konczy się takim znakiem?
athabus
Dokładnie, a w js regexp jest... upośledzony.

To co podałeś erix wypróbowałem na samym początku i ... nie działało. Ale napisałeś o tym więc spróbowałem ponownie i zadziałało ;-) Pewnie jakąś literówki w kodzie zrobiłem... Nienawidzę javascriptu ;-)

Dzięki bardzo - rozwiązałeś mój problem.

//edit Snickers - niby masz rację, ale pracuję nad pewną rzeczą, która powoduje, że to nie jest dobre rozwiązanie w tym konkretnym przypadku. Zawsze dochodzą też kropki, myślniki różne białe znaki itp. Wiem że można zrobić alternatywy etc, ale rozwiązanie erixa jest bardziej elegancki i łatwiejsze w utrzymaniu kodu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.