Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wyrażenia regularne - jak sformuować całkiem dowolny ciąg
swist666
post
Post #1





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 14.05.2004
Skąd: Wrocław

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


Witam,

mam taki ciąg

  1. $analiza = 'abc durewghearhg
  2. cde';


i chciałbym wydobyć za pomocą wyrażeń regularnych (tak chyba najprosciej) co jest pomiędzy "abc" a "cde". Normalnie wystarczyłoby zastosować taką funkcję:

  1. preg_match_all('/abc(.*)cde/', $analiza, $rezultat);
  2.  
  3. print_r("<pre>");
  4. print_r($rezultat);
  5. print_r("</pre>");


jednak jako, że oprócz standardowych znaków występuje tu znak złamania wiersza (tak się to chyba nazywa - chodzi mi o "\n" czyli potocznie enter) funkcja zwraca pustą tablicę sad.gif

Ktoś wie jak zmienić (.*) aby zastosowało się także to tego typu ciągów (dodam, że chciałbym aby funkcja działała również z ciągami typu abcblablalba124./][cde oraz nie koniecznie "zaczynające" i "kończące" na te dwie wartości - np. tra la la abc tekst cde bla bla )

Ten post edytował swist666 9.08.2010, 14:58:34
Go to the top of the page
+Quote Post
Kużdo
post
Post #2





Grupa: Zarejestrowani
Postów: 181
Pomógł: 14
Dołączył: 4.06.2008

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


  1. ^[a-zA-Z0-9]{3}[a-zA-Z0-9\s]*[a-zA-Z0-9]{3}$


Najpierw 3 znaki z zakresu dużych i małych liter (bez polskich) i cyfr od 0 do 9, później dowolna ilość liter (małych dużych, bez polskich) cyfr i spacji i na koniec muszą być 3 znaki koło siebie z zakresu a-zA-Z0-9.

Do środka musiałbyś dodać tylko znaki specjalne jak nawiasy itp.
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Hmm

  1. <?php
  2.  
  3. $analiza = 'abc durewghearhg
  4. cde';
  5.  
  6. preg_match('#abc(.*?)cde#s', $analiza, $matches);
  7.  
  8. echo '<pre>';
  9.  
  10. print_r($matches);
  11.  
  12. ?>


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
swist666
post
Post #4





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 14.05.2004
Skąd: Wrocław

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


nie wiem czym się różnie # zamiast / ani co oznacza "s" na końcu ale działą biggrin.gif

dzięki
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(swist666 @ 9.08.2010, 15:38:13 ) *
nie wiem czym się różnie # zamiast /

http://www.php.net/manual/pl/regexp.reference.delimiters.php

Cytat(swist666 @ 9.08.2010, 15:38:13 ) *
ani co oznacza "s" na końcu

http://www.php.net/manual/pl/reference.pcr...n.modifiers.php


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
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 Aktualny czas: 21.08.2025 - 00:33