Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia regularne, Pomoc w sformułowaniu
adrix88
post 2.07.2011, 12:33:09
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 16.11.2007

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


Witam. Potrzebuje wyciągnąć 2 dane ze skryptu i od rana bawię się z wyrażeniami regularnymi, ale bardzo słabo mi idzie ich zrozumienie. Moglibyście mi pomóc w sformułowaniu dwóch (myślę że prostych) wyrażeń regularnych? Chodzi dokładnie o wyrażenia które będą pasować do poniższych kryteriów:

Wyrażenie 1:
Chodzi o wyciągnięcie cyfry z poniższego zdania:
"XXXXXX 3 socket XXXXXXXXXX"
chodzi konkretnie o wyciągnięcie tej pogrubionej trójki. Jest ona zawsze oddzielona spacją z obu stron oraz występuje po niej słowo socket, reszta parametrów się zmienia i są to cyfry lub wyrazy.

Wyrażenie 2:
Chodzi o wyciągnięcie do tablicy wszystkich liczb które mają przed i po puste znaki spacji. Przykładowy ciąg:
"2732 2398 232 239 2323"
Potrzebuję zebrać wszystkie te cyfry do jednej tablicy.


Z góry dzięki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Adi32
post 2.07.2011, 12:52:34
Post #2





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


ad1.

  1. preg_match('/\s(\d)\ssocket/',$wej,$wyj);
  2. $cyfra = $wyj[1];



ad2.

  1. $explode = explode(' ',$string);


Coś w tym stylu. Nie sprawdzałem;


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
adrix88
post 2.07.2011, 14:14:11
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 16.11.2007

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


Pierwsze rozwiązanie działa fajnie, ale drugie nie do końca, bo zapomniałem dodać że pomiędzy tymi cyframi jest nieokreślona liczba pustych znaków czyli może być tak: "22 233 334 434", a wtedy to rozwiązanie z explode nic nie da.
Go to the top of the page
+Quote Post
Adi32
post 2.07.2011, 14:27:57
Post #4





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


  1.  
  2. // redukujesz multispacje do jednej
  3. $string = preg_replace('/\s+/',' ',$string);
  4.  
  5. $explode = explode(' ',$string);
  6.  


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
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: 14.08.2025 - 07:37