Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Regex znak końca wyrazu, Problem z polskimi znakami
stygma
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 1
Dołączył: 10.11.2007

Ostrzeżenie: (0%)
-----


$szukany - szukany wyraz z input formularza POST
Kod
preg_match_all("/^$szukany\b([^.]+)?/ix",$do_przeszukania,$dopasowanie,PREG_OFFSET_CAPTURE);

Chodzi o wyszukiwanie wyrazu(ów) z pierwszych wyrazów tekstów pobranych z bazy i wyświetlanie go z pozostałą częścią zdania aż do kropki (kropka nie musi być wyświetlana) kończącej pierwsze zdanie tekstu.
Wyraz ten może być zakończony kropką, wtedy tylko on zostanie wyświetlony jako $dopasowanie, lub być pierwszym wyrazem zdania, a po nim może być spacja, przecinek, dwukropek, średnik itp. a dalej reszta zdania.
Regex
Kod
"/^$szukany\b([^.]+)?/ix"

nie odróżnia, nie wyświetla wyrazów zakończonych polskim ogonkiem np. "widział" (ale np. ęóąśłżźćńA odróżnia).
Bez znaku końca wyrazu (to chyba asercja, czy jakośtam) "\b"
Kod
"/^$szukany([^.]+)?/ix"

działa poprawnie, ale też wyszukuje wyrazy, w których skład wchodzi wyraz szukany np. "widziałem", a tego nie ma robić. Próbowałem ustawiać mb_internal_encoding i mb_regex_encoding na iso-8859-2, czy utf-8, ale nie pomaga.

Apache/2.2.6 na localhost, php 5.1.6, mysql-5.0.27-1.

Pomóżta chłopaki, co?

pozdrawiam stygma
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 04:54