Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][REGEXP], Temat aktualny - Wyciąganie z podanego tekstu konkretnych nawiasów
golaod
post
Post #1





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Witam serdecznie.

Temat troszkę źle obrazuje to co chciałbym uzyskać. Konkretnie chodzi mi o coś takiego:

Mamy sobie string np.

jeden(dwa(trzy(1))) funkcja(funkcja1())

Wynikiem wyszukiwania powinna być tablica:
1 => jeden(dwa(trzy(1)))
2 => funkcja(funkcja1())

Czemu to nie jest proste. Ponieważ chciałbym, żeby to było idiotoodporne. Czyli w sytuacji:

jeden(dwa(trzy(1)))[el1,el2] funkcja(funkcja1())

wynikową tablicą była
1 => jeden(dwa(trzy(1)))
2 => [el1,el2]
3 => funkcja(funkcja1())

Co rodzi problem:
jeden(dwa(trzy([el1,el2])))

Pozdrawiam.

bump

Czyżby, był z tym aż taki problem ? Ogólnie mogę to zrobić przechodząc po każdym znaku w stringu, tylko pytanie czy to nie będzie mniej wydajne w porównaniu do wyrażeń.

Ten post edytował golaod 28.08.2011, 17:54:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Magic WWW
post
Post #2





Grupa: Zarejestrowani
Postów: 123
Pomógł: 32
Dołączył: 9.09.2010
Skąd: Brzeg

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


Proszę bardzo (IMG:style_emoticons/default/smile.gif)

  1. $string = 'jeden(dwa(trzy(1)))[asaasd]funkcja(funkcja1())';
  2.  
  3. preg_match('#[A-Z_0-9]+\(([A-Z0-9_,\(\)]+\))*#i', $string, $cut);
  4.  
  5. echo '<pre>';
  6. var_dump($cut);
  7. echo '</pre>';


W razie problemu pisz w temacie (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
golaod
post
Post #3





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Cytat(Magic WWW @ 28.08.2011, 12:01:56 ) *
Proszę bardzo (IMG:style_emoticons/default/smile.gif)

  1. $string = 'jeden(dwa(trzy(1)))[asaasd]funkcja(funkcja1())';
  2.  
  3. preg_match('#[A-Z_0-9]+\(([A-Z0-9_,\(\)]+\))*#i', $string, $cut);
  4.  
  5. echo '<pre>';
  6. var_dump($cut);
  7. echo '</pre>';


W razie problemu pisz w temacie (IMG:style_emoticons/default/smile.gif)


Ok tylko uwzględniłem tam też sytuację:
jeden(dwa(trzy([el1,el2])))
która nie zostanie wyłapana Twoim wyrażeniem (IMG:style_emoticons/default/smile.gif) Ale dziękuję za poświęcony czas.


bump

bump

bump

bump
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: 15.10.2025 - 00:45