Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenie regularne
-nieznany-
post
Post #1





Goście







Potrzebuję wyrażenia regularnego które znajdzie mi wszystkie znaki, aż do wystąpienia jakiegoś ciągu znaków.
Przykład
--WP
dfsdfs
df
-sd
sf
sd
--WP

powinno wyłapac

dfsdfs
dfsdfs
df
-sd
sf
sd

Kompinowałem z [^--WP]* ale to zatrzymuje się po znalezieni któregokolwiek ze znakó --WP
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
crash
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


No żeby taki był wynik to tekst musiałby wyglądać tak:
Kod
abc
--WP
dfsdfs
df
-sd
sf
sd
--WP
--WP
asdas
asd
--WP
--WP
asd
cxad
--WP
asd

Jak chcesz inaczej to pokombinuj może z:
  1. <?php
  2. print_r( explode( '--WP', $txt ) );
  3. ?>


-- edit:
A może to Cię zadowoli:
  1. <?php
  2. $pos  = -1;
  3. $data = array();
  4.  
  5. foreach( explode( "\n", $txt ) as $line )
  6. {
  7.    if( preg_match( '/^--([A-Z]{2,})$/', trim( $line ), $out ) )
  8.    {
  9.       $make = true;
  10.       $key  = $out[ 1 ];
  11.       $pos++;
  12.  
  13.       continue;
  14.    }
  15.    
  16.    if( $make == true )
  17.    {
  18.       $data[ $key ][ $pos ] .= $line . "\n";
  19.    }
  20. }
  21.  
  22. print_r( $data );
  23. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 11.10.2025 - 00:46