Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyrażenia regularne - zaprzeczenie?
krzywy36
post
Post #1





Grupa: Zarejestrowani
Postów: 370
Pomógł: 43
Dołączył: 1.12.2007
Skąd: Kędzierzyn Koźle

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


Chcę z tekstu wyciągnąć wszystkie wystąpienia "{ ...coś... }" takie, że ...coś... nie zawiera znaku "{".
Próbowałem z czymś takim:
  1. preg_match('/\{[^\{]*}/', $test);

czyli jak ja to rozumiem: "dowolna ilość znaków różnych od "{", pomiędzy nawiasami klamrowymi", ale nie działa ;<

Ten post edytował krzywy36 23.06.2012, 00:14:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tolomei
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Bardzo ciężka sprawa...
Na stackoverflow nawet mówią, że się nie da.
Inni podają jakieś przykłady, które nie nadają się dla Twojego problemu...

Sam dopracowałem się czegoś takiego(przez ostatnie dwie i pół godziny):
  1. <?php
  2. $str = '{abcd}{ef{gh}{ijkl}{mnop}{rst{u}';
  3.  
  4. preg_match_all('/\\{([^\\{]*?(?!\\{)[^\\{]*?)(?(1)}|\\{[^}]+?})/', $str, $out);
  5.  
  6. echo '<pre>';
  7. print_r($out);
  8. echo '</pre>';


Jeszcze jutro spróbuję.

Może ktoś jeszcze ma jakiś pomysł ?

Pozdro.

PS. Musisz wstawić podwójny znak ucieczki - raz dla PHP, a drugi raz dla PCRE.
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: 14.10.2025 - 14:57