Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] wyrazenia regularne
yalus
post 31.07.2008, 14:43:06
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


czesc

czy moglby mi ktos pomoc przy konstrukcji wyrazenia regularnego tak aby przepuszczajac przez nie string o postac:

<option value="1011">Nabiał (13)</option>

otrzymac cos takiego:

Nabiał


z tym ze takich stringow mam kilka do przerobki i sęk w tym że te wartości w cudzyslowiu tj. 1011 i to w nawiasie okroglym tj. 13 dla innych stringow zmieniaja sie
inny moze miec taka postac:

<option value="11">Turystyka (1453)</option>

i tutaj chcialbym cos takiego

Turystyka

czy da sie cos takiego zrobic?


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
Lars
post 31.07.2008, 14:56:27
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 15
Dołączył: 29.04.2005
Skąd: Gdynia

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


Owszem, da się.

Wystarczy w preg_replace użyć (.*?)


--------------------
(\.../) This is Bunny. Copy and paste bunny into
(O.o) your signature to help him gain world domination.
(> <) Zanim zapytasz | Też się przyda | Pomogłem ci? Kliknij "Pomógł"
Go to the top of the page
+Quote Post
barthpl
post 31.07.2008, 15:08:46
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


Dla podanego problemu myślę, że takie coś jest ok:

  1. <?php
  2. $input[] = '<option value="1011">Nabiał (13)</option>';
  3. $input[] = '<option value="11">Turystyka (1453)</option>';
  4. $output = array();
  5.  
  6. $patern = '>([a-zA-ZąĄćĆęĘłŁńŃóÓśŚżŻźŹ]+)';
  7.  
  8. foreach( $input as $key => $val ) {
  9. ereg( $patern, $val, $regs );
  10. $output[$key] = $regs[0]; 
  11. }
  12.  
  13. print_r( $output );
  14. ?>


Powinno dać wynik:

Array
(
[0] => >Nabiał
[1] => >Turystyka
)

Po szczegóły odsyłam do specyfikacji funkcji ereg" title="Zobacz w manualu PHP" target="_manual i/lub pokrewnych.


--------------------
Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
Go to the top of the page
+Quote Post
yalus
post 31.07.2008, 15:27:47
Post #4





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


czesc

dzieki, to co napisales to dziala
ale ja zapomnialem dodac ze string na wejsciu moze miec rowniez taka postac:

<option value="1011">warzywa i owoce (13)</option>


i to co ty mi poradziles to zwroci:

warzywa

a mi zalezy na

warzywa i owoce

wiedzial bys jak zrobic aby caly ciag byl zwrocony?


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
Shili
post 31.07.2008, 15:36:09
Post #5





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Ze swojej strony na szybko proponowałabym taką modyfikację:
  1. <?php
  2. $input[] = '<option value="1011">Nabiał i owoce (13)</option>';
  3. $input[] = '<option value="11">Turystyka (1453)</option>';
  4. $output = array();
  5.  
  6. $patern = '/>([a-zA-ZąĄćĆęĘłŁńŃóÓśŚżŻźŹs]+[a-zA-ZąĄćĆęĘłŁńŃóÓśŚżŻźŹ]*)/';
  7.  
  8. foreach( $input as $key => $val ) {
  9. preg_match( $patern, $val, $regs );
  10. $output[$key] = $regs[1]; 
  11. }
  12.  
  13. print_r( $output );
  14. ?>
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.08.2025 - 16:47