regulare ausdrücke

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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 
    Last edited by 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

    Comment


    • #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)"

      Comment


      • #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.

        Comment


        • #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

          Comment


          • #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?

            Comment

            Working...
            X