Oliver: Problem mit regular expressions (regexp)

Hallo,

ich habe folgendes Problem mit regexp:
Ich möchte einen String dann ersetzen, wenn nur Buchstaben enthält, nicht aber "hallo" lautet. Versuche mit

[a-z]+^(hallo)

scheitern leider.

Wäre toll, wenn mir jemand einen Tipp geben könnte!

Gruss,
Oliver

  1. Hallo Oliver,

    ich habe folgendes Problem mit regexp:
    Ich möchte einen String dann ersetzen, wenn nur Buchstaben enthält, nicht aber "hallo" lautet. Versuche mit

    [a-z]+^(hallo)

    bringt dir nen syntaxfehler. Es findet zwar mehr als 1en buchstaben, der kleines a bis kleines z ist, aber ^(hallo) geht so net. Gehen würde da afaik [^(hallo)], ich würde aber (?!hallo) empfehlen (müsste afaik auch gehn).

    Also, sagen wir es mal so: Du meinst, du willst einen String vollständig ersetzten, wenn er nur Buchstaben enthält und _nicht_ "hallo" lautet? Dann würde ich das folgende machen:

    // $str = dein string

    if($str != "hallo" && preg_match("/([a-zA-Z]+)/i", $str)) {
      $str = "neuer String";
    }

    müsste afaik gehen.

    WauWau

    --
    ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
    E-Mail WauWau: mailto:selfforum.wauwau@spameater.org
    1. Hallo WauWau,

      Es findet zwar mehr als 1en buchstaben, der kleines a bis kleines z ist, aber ^(hallo) geht so net. Gehen würde da afaik [^(hallo)], ich würde aber (?!hallo) empfehlen (müsste afaik auch gehn).

      wohin kommt denn dann das [^(hallo)] bzw. (?!hallo) ?

      Also, sagen wir es mal so: Du meinst, du willst einen String vollständig ersetzten, wenn er nur Buchstaben enthält und _nicht_ "hallo" lautet? Dann würde ich das folgende machen:

      // $str = dein string

      if($str != "hallo" && preg_match("/([a-zA-Z]+)/i", $str)) {
        $str = "neuer String";
      }

      müsste afaik gehen.

      wenns so leicht wäre... ;-) Nein, das geht natürlich nicht, da ich ne recht komplexe Zuweisung diverser regexps machen muss und mein Beispiel nur ein winziger Auszug daraus ist.

      Gruss,
      Oliver

      1. Hallo Oliver,

        wohin kommt denn dann das [^(hallo)] bzw. (?!hallo) ?

        also, meine Regular-Expression-Kenntnisse sind zwar ziemlich schlecht, aber ich denke, das könnte gehen, eher das zweite, das könnte gehen. Warum? also, zum ersten: Wenn du was in Sqare-Brackets [] schreibst, dann .. also bei sowas: [abc] findet er beim entsprechenden Zeichen entweder ein a, oder ein b, oder ein c. schreibst du [^abc], dann findet er alles, außer einem a, einem b oder einem c. entsprechend müsste [^(hallo)] alles _außer_ einem "hallo" finden. Ich kann mir aber nicht so richtig vorstellen, dass das "so" geht, besser wäre (?!hallo), denn das findet den begriff vorher, wo darauffolgend _nicht_ "hallo" vorkommt. ist aber auch ivb. dem ding, was du da oben vorgeschlagen hast, dumm.

        wenns so leicht wäre... ;-) Nein, das geht natürlich nicht, da ich ne recht komplexe Zuweisung diverser regexps machen muss und mein Beispiel nur ein winziger Auszug daraus ist.

        Wie soll man dir helfen, wenn du nur sowas weniges lieferst? Du kannst  das, was du da machen willst, nicht in einem einzigen kleinen preg_replace() machen. Gib mir deinen Code oder einen Ausschnitt daraus, dann kann man dir auch helfen, verdammt noch mal.

        WauWau

        --
        ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
        E-Mail WauWau: mailto:selfforum.wauwau@spameater.org