Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak sprawdzić czy ciąg występuje jako całe słowo?, Wyrażenia regularne na ciągach UTF-8
latet
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 2.10.2005

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


Witam,

Muszę napisać wyrażenia regularne (lub funkcję), które sprawdzi czy dany ciąg znaków występuje w przeszukiwanym dużym tekście jako pełny wyraz.

Czyli jeśli szukamy ciagu "przy" to interesuje nas słowo "przy", a nie słowo "przypadek".

Myślę, że najprościej będzie zdefiniować z czym może sąsiadować taki ciąg, aby był uznany za pełny wyraz.

Do głowy mi przychodzi, że sąsiadować może z:
- początkiem stringu
- końcem stringu
- spacjami oczywiście, w tym innymi znakami tego rodzaju, np. \t, \n, twarda spacja itp
- przecinkiem
- kropką
- średnikiem
- dwukorpkiem
- apostrofami, cudzysłowiami
- nawiasami wszelkiego typu
- wszelkimi znaczakmi, kóre na klawiaturze wpisuje się przez SHITF-cyfra
- pozostałymi znaczkami typu + - = \ / ? ~
- cyframi (opcjonalnie)

Ta lista jest oczywiście umowna i do ustalenia, probelm mam z tym jak to w ogóle napisać? Pewnie funkcja mb_eregi() będzie tu sendem sprawy.

Trudności mam dwie:
1) nie "czuję" wyrażeń regularnych kompletnie (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
2) teksty, które mam obsłużyć są w UTF-8, i są w nich egzotyczne języki, tak więc odpada zdefiniowanie z czym szukany ciąg nie może sąsiadować. Trzeba określić z czym może - i to określić to w UTF-8.

Plik .php jest jako taki także kodowany w UFT-8.

Wielkie dzięki!

latet

Ten post edytował latet 31.12.2005, 14:23:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Radarek
post
Post #2





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


  1. <?php
  2.  
  3. $tekst = "Przy okazji wspomne ze (...). Przyszedl i... dalej nie pamietam :-). Przy. przyprzy. Hm przy? Naprzykszyl mi sie. przy";
  4.  
  5. preg_match_all('/bprzyb/i', $tekst, $arr);
  6.  
  7. echo "<pre>";
  8. print_r($arr);
  9. echo "</pre>";
  10.  
  11. ?>


Cytat
Array
(
    [0] => Array
        (
            [0] => Przy
            [1] => Przy
            [2] => przy
            [3] => przy
        )

)


\b lapie granice wyrazow.
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: 16.09.2025 - 04:16