Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenia regularne
Forum PHP.pl > Forum > Gotowe rozwiązania
Fistach
potrzebuję napisać wyrażenie, które będzie "wybierało" każdy wyraz w nawiasach:

np (Google.com)

czyli:

Wyrażenie musi wybrać z dowolnego tekstu fragment (w tym przypadku): (Google.com)

czyli:

wyrażenie musi wybierać łacuch zaczynający się na ( a kończący na ).

Jak to zrobić?

Wiem, że aby wybrać każdy łańcuch zaczynający się np na a można pobrać dzięki:

/^a/

a kończący się na b dzięki:

/b$/

Nie wiem niestety jak to połączyć aby zaczynał się na a i jednocześnie kończył na b

Zaprezentuję może jescze przykładowy string:

This is the standard homepage. http://www.google.com/ (Google's main page)

Może teraz kod, który napisałem:

  1. <?php
  2. function MakeLink($text, $ext = &#092;"\") {
  3.  
  4. if ($ext != &#092;"\") {
  5.  
  6. $ext2 = &#092;" $ext\";
  7.  
  8. } else {
  9.  
  10. $ext2 = &#092;"\";
  11.  
  12. }
  13.  
  14. $text = eregi_replace(&#092;"([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])\", \"<a href=\"1://23\"$ext2 target=_blank>2</a>\", $text);
  15. $text = eregi_replace(&#092;"(([a-zA-Z0-9_]|-|.)+@([^[:space:]]*)([[:alnum:]-]))\", \"<a href=\"mailto:1\"$ext2>1</a>\", $text);
  16.  
  17. return($text);
  18.  
  19. }
  20. ?>


I teraz celem ten funkcji MakeLinki jest wyswietlenie na ekranie:

<a href=http://www.google.com target=_blank>Google's main page</a>.

czyli zamienia http://www.google.com na <a href=http://www.google.com target=_blank>

na końcu dodaje </a>

ale mam problem bo nie wiem jak wyciągnąć ta tresc z nawiasow czyli Google's main page. Wiem jak wywalić to później z wyswietlenia. CHodzi o to ze do linijki 14. po :]#?/&=]) trzeba dodać jescze jedną część. ale nei wiem jak.
bela
Coś takiego?
  1. <?php
  2. preg_match('/((.*))/', dalej wiadomo cos wpisac ;]);
  3. ?>
Fistach
hmm nie bardzo rozumiem smile.gif zarzuc calym kodzikiem smile.gif
bela
  1. <pre>
  2. <?php
  3. $text = 'This is the standard homepage. http://www.google.com/ (Google's main page)';
  4. preg_match_all('/((.*))/, $text, $matches);
  5. print_r($matches);
  6. ?>
  7. </pre>
Fistach
Ok dzieki:) jzu sobie proadzilem biggrin.gif temat prosze zamknac:)
Radarek
Cytat(bela_666 @ 2005-05-29 09:58:25)
  1. <pre>
  2. <?php
  3. $text = 'This is the standard homepage. http://www.google.com/ (Google's main page)';
  4. preg_match_all('/((.*))/, $text, $matches);
  5. print_r($matches);
  6. ?>
  7. </pre>


Musisz troche przerobic wyrazanie regularne:

'/\(([^)]*)\)/'

W twoim przypadku wyrazenie regularne dla czegos takiego:
'(1)#@!#@!(2)'
zlapie calosc a nie (1) a potem (2)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.