Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][regex] Odpowiednik 'lub' w regex
Wolfie
post
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam,

Npisalem taka funkcje :

  1. function tokenizeFile() {
  2. $tokenTable = preg_split('/(\s+)/', $this->getFile());
  3. foreach($tokenTable as $token) {
  4. $array = preg_replace('|[\.][-]|', '', $token);
  5. $temp[] = $array;
  6. }
  7. print_r($temp);
  8. }


Przeszukuje ona plik tekstowy w poszukiwaniu spacji a nastepnie wrzuca wszystkie znalezione slowa do osobnych komorek w tabeli.
Pozniej ze wszystkich wyrazow znajdujacych sie w tabeli chce usunac takie znaki jak ',' (przecinek) '.' (kropka) '-' (myslinik) itp itd.

Jak widac dzieje sie to w tej linijce :

  1. $array = preg_replace('|[\.][-]|', '', $token);


Tylko teraz nie wiem jak w wyrazeniach regularnych dziala konstrukcja 'lub'. Tzn ze jak napotka kropke lub przecinek lub myslnij to ma go poprostu zlikwidowac z danej komorki tabeli......probowalem oddzielac znaki nawiasami okraglymi, kwadratowymi jak to widac wyzej ale nic nie dziala.

Jak zastosuje takie cos :
  1. $array = preg_replace('|\.|', '', $token);


To elegancko wywala kropke ale juz bardziej zlozone wyrazenie jest dla mnei zagadka.....
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Wolfie
post
Post #2





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


A dlaczego tu sa 3 backslashe? mi sie to udalo zrobic za pomoca jednego :

  1. $array = preg_replace('/\.|-|,|\(|\)|"|\'/', '', $token);


ale teraz mam jeszcze problem jak usunac z tekstu '/' i '\'.......

probowalem tak :

  1. $array = preg_replace('/\.|-|,|\(|\)|"|\/|\|\'/', '', $token);


Ale zadnej reakcji i slash i backslash normalnie pozostaja w stringu.....a do tego znowu pojawia sie apostrof ....

-------------------------------------------------------

Ok zrobilem to tak :

  1. $array = preg_replace('/\.|-|,|\(|\)|"|\/|\\\|\'/', '', $token);


Ale nie wiem dlaczego trzeba uzyc 2x '\' przed backslashem....czy ewentyalnie apostrofem.....

Ten post edytował Wolfie 17.08.2009, 12:07:04
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: 6.10.2025 - 17:54