Skocz do zawartości

Zdjęcie
* * * * * 1 głosy

Wyszukiwanie wyrazen "miedzy wyrazeniami" w stringu


Najlepsza odpowiedź unbreak, 15 marca 2014 - 10:40

preg_match("/^TEST(.+)YO$/",$variable,$matches);
print_r($matches); //return array
i w $matches masz wszelkie dopasowania. Powyższy regex bierze wszystko co jest pomiędzy TEST a YO. Jeżeli chcesz ograniczyć np tylko to literowych elementów to użyj tego:
"/^TEST([a-zA-Z])YO$/"
Możesz oczywiście też zrobić coś na zasadzie:
$newVariable = preg_replace("/^TEST(.+)YO$/","$1",$variable);

echo $newVariable; //abcd;
Pierwsze rozwiązanie wywali CI wszystkie możliwe dopasowania (jeżeli tekst jest dłuższy i jest ich więcej, Drugie rozwiązanie nie jest takie dobre i może Ci wywalić za dużo tekstu. Przejdź do postu


3 odpowiedzi w tym temacie
  • Zamknięty Temat jest zamknięty
WebRapko

    Użytkownik

  • 97 postów
    • Czas spędzony online: 12m
-12
Słaba
  • LocationMalopolska

Napisano 15 marca 2014 - 00:14

#1
Witam, mam pewne pytanie, czy jezeli mam taka zmienna:
$variable = "TESTabcdYO";
To czy moge wyciagnac ze stringa to "abcd" przy podaniu ze jest ona miedzy TEST oraz YO?
  • -1

unbreak

    WT Elite

  • 1 937 postów
    • Czas spędzony online: 27d 8h 43m 36s
506
Znakomita!
  • Location/home/unbreak

Napisano 15 marca 2014 - 10:40   Najlepsza odpowiedź

#2
preg_match("/^TEST(.+)YO$/",$variable,$matches);
print_r($matches); //return array
i w $matches masz wszelkie dopasowania. Powyższy regex bierze wszystko co jest pomiędzy TEST a YO. Jeżeli chcesz ograniczyć np tylko to literowych elementów to użyj tego:
"/^TEST([a-zA-Z])YO$/"
Możesz oczywiście też zrobić coś na zasadzie:
$newVariable = preg_replace("/^TEST(.+)YO$/","$1",$variable);

echo $newVariable; //abcd;
Pierwsze rozwiązanie wywali CI wszystkie możliwe dopasowania (jeżeli tekst jest dłuższy i jest ich więcej, Drugie rozwiązanie nie jest takie dobre i może Ci wywalić za dużo tekstu.
  • 2

webDeveloper


WebRapko

    Użytkownik

  • 97 postów
    • Czas spędzony online: 12m
-12
Słaba
  • LocationMalopolska

Napisano 17 marca 2014 - 21:01

#3
Dzieki :D Jestes PRO.
  • 1

zonic

    WT Elite

  • 2 911 postów
    • Czas spędzony online: 134d 2h 28m 23s
472
Znakomita!
  • LocationToruń

Napisano 17 marca 2014 - 23:43

#4

Wnioskuję, że problem rozwiązany. Temat zamykam. W razie jakichkolwiek kłopotów proszę o otwarcie nowego tematu, bądź PW do mnie ze zleceniem otwarcia tego :)


  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych