Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP, Wyrazenia regularne
Enchox
post 12.02.2009, 16:14:04
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 6.02.2009

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


Witam.
Da się utworzyć regex, który wyciągałby informacje od '->' do 'was' w poniższym schemacie? (Chodzi mi o uzycie funkcji preg_match_all)

Xxxx -> Xx xxx xxxxx XXXX was banished ~

Tzn. wiem, ze zrobienie pojedynczego regexu do kazdej mozliwej kombinacji to nie problem, ale jest kilkadziesiat tysiecy wynikow, liczba miejsc, wyrazow, wielkosc liter pomiedzy -> a was zmienia sie praktycznie w kazdej kombinacji.
Dlatego pytam: Nie daloby sie utworzyc wyrazenia regularnego ktory niezaleznie od liczby wyrazow, wielkosci liter, liczby liter (czasem wyraz to jedno slowo) pobieralby dana tresc do preg_match_all?

Proszę o szybką pomoc tongue.gif


Btw. Przepraszam, że tak chaotycznie napisane, ale jestem już trochę tym zmęczony.

Ten post edytował Enchox 12.02.2009, 16:14:22
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
ddiceman
post 12.02.2009, 16:40:58
Post #2





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


Moze po prostu przejdz linia po linii? Tak bedzie szybciej
  1. <?php
  2. $od = strpos($linia, '->');
  3. $do = strrpos($linia, 'was');
  4. substr($linia, $od, $do-$od);
  5. ?>

No chyba, ze rzeczywiscie potrzebujesz to bedzie cos w stylu...
  1. <?php
  2. preg_match_all($tekst, '|(?!.*)->(.*)was banished(?!.*)|'
  3. ?>


Ten post edytował ddiceman 12.02.2009, 16:44:49
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 - 09:56