regulare ausdrücke

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • regulare ausdrücke

    Leute bitte helft mir .
    ich hab mir zwar schon diverse beschreibungen durchgelesen aber ich kapier es einfach nicht .

    wie kann ich aus einem string nur die "(?????)" auslesen ?
    und den rest löschen !
    Bitte ich bin am verzweifeln !

    mit den fragezeichen meine ich z.B "(89769)" ohne ahnführungszeichen mit klammer

    PHP-Code:
    $variable="sfskjsjkbscjsncjskncsk(12345)sfsfs><<<sgsfs/ddcsc>"

    $ergebnis=str_replace(!\(?????\),"",$variable);

    echo(
    "ergebnis");

    mmh so 
    Zuletzt geändert von Lauter; 03.12.2003, 23:46.
    --------------------------------------
    Wissen zu teilen ist die Weisheit des Lehrens.

  • #2
    naja,

    du suchst nach nem weg, nur die klammern, die beliebig viele zahlen umschließen, zu erhalten?

    ich würde preg_match_all nehmen, weil ich nicht weiß, ob preg_match auch den match liefert ... - als regexp würde ich "/\([\d]*\)/" vorschlagen.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Also preg_match und preg_match_all helfen dir nicht viel, was du brauchst ist preg_replace. Das RegEx sähe dann so aus:

      Code:
      /(\([0-9]+\))/
       ^'speichert' das was in den klammern steht als \\1
         ^einfache Klammer auf
           ^An genau dieser 1en stelle können die zahlen 0-9 sthen
               ^sagt 1- oder mehrfaches vorkommen
      Ergibt insgesamt:
      Code:
      $string = preg_replace("/(\([0-9]+\))/", "\\1", $string);
      Macht aus
      "kjasdlkj(09123)asd()lnsdkj(asd)jasd(98123)kasd"
      das hier
      "(09123)(98123)"

      Kommentar


      • #4
        mmh geht leider nicht

        PHP-Code:
        $string "kjasdlkj(09123)asd()lnsdkj(asd)jasd(98123)kasd";
        $string preg_replace("/(\([0-9]+\))/""\\1"$string);

        echo(
        "$string"); 
        ausgabe:

        kjasdlkj(09123)asd()lnsdkj(asd)jasd(98123)kasd
        das funz so nicht !
        warum ?
        --------------------------------------
        Wissen zu teilen ist die Weisheit des Lehrens.

        Kommentar


        • #5
          Re: mmh geht leider nicht

          Original geschrieben von Lauter
          das funz so nicht !
          warum ?
          weil du die treffer wieder einsetzt => \1

          du willst doch nur die klammerinhalte mit den zahlen, oder?
          Code:
          $string = "kjasdlkj(09123)asd()lnsdkj(asd)jasd(98123)kasd";
          preg_match_all("/(\([0-9]+\))/U", $string,$match);
          // oder 
          preg_match_all("/\([\d]+\)/", $string,$match);
          print_r($match);
          die klammern bekommst du selber weg
          Kissolino.com

          Kommentar


          • #6
            hilft dir das?

            PHP-Code:
            $eintrag str_replace (';)''<img border="0" alt="" src="gfx/smilies/wink.gif" width="15" height="15">'$eintrag);
            $eintrag str_replace (':D''<img border="0" alt="" src="gfx/smilies/biggrin.gif" width="15" height="15">'$eintrag); 
            oder das

            PHP-Code:
               $eintrag  preg_replace('%('.$suche.')%i','<u><font color="FF0000">$1</font></u>',$eintrag);} 
            sind jetzt direkt aus meinem quelltext und funzen... musst halt dann umschreiben


            EDIT: was hat der mit meiner ersten funktion gmacht?

            Kommentar

            Lädt...
            X