Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie ciągu do określonych znaków., Wyrażenia regularne
Wankster
post
Post #1





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 19.04.2003

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


Więc tak:
Piszę sobie parser plików konfiguracyjnych (rozbudowane INI (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) i natknąłem się na problem. Otóż komentarze komentarze rozpoczynają się od znaku # lub ;. Mogą też być na końcu wartości:
Kod
; To jest komentarz
; I to też :)

# To jest inny komentarz
# i to też

[Test] # Sekcja o nazwie Test :D
Nazwa = Wartość
Dwa = Druga wartość; A tu jest komentarz do tej wartości
Trzy = Chcem wyświetlić średnik: \; ale nie mogę \;(; Jak zrobić żeby usuwał tekst po; ale ignorował \;?

[DrugaSekcja]; Sekcja druga!
Tablica[] = 1
Tablica[Dwa] = 2; dwa


W sekcji Test elementu Trzy chcem wyświetlić średnik, ale średnik robi za komentarz, więc poprzedzam go znakiem \. Potrzebuje jakiegoś wyrażenia regularnego, które pobierze wszystko do pierwszego ; lub #, ale pominie \; i \#.
Tak jak jest w php $string = "quote \"s\" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ";

Próbuję coś wymyśleć, ale nic nie działa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bendi
post
Post #2





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Tak bedzie chyba lepiej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
  1. <?php
  2. $t = array(&#092;"Trzy = Chcem wyświetlić średnik: ; ale nie mogę ;(; Jak zrobić żeby usuwał tekst po; ale ignorował ;?\",
  3. &#092;"Jestem# sobie wartością ;) // Testowa wartość\",
  4. &#092;"costam#; # komentarz\",
  5. &#092;"#komentarz od poczatku linii\"
  6.  );
  7.  
  8. foreach ($t as $v) {
  9. preg_match('%(?<!)[#;](.*)%', $v, $m);
  10. print_r($m);
  11. }
  12.  
  13. ?>
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: 28.12.2025 - 02:24