mintoxis: regulärer ausdruck "nicht http://"

Hi,
wie kann ich in einem regulären Ausdruck folgendes hinbekommen:
Anführungszeichen, dann ein beliebiger Text - der jedoch nicht mit http:// anfängt, und dann wieder Anführungszeichen?
Danke!
mintoxis

  1. Hallo

    wie kann ich in einem regulären Ausdruck folgendes hinbekommen:
    Anführungszeichen, dann ein beliebiger Text - der jedoch nicht mit http:// anfängt, und dann wieder Anführungszeichen?

    Mit einem negativen Lookahead.

    Gruß Uwe

  2. Hi,

    Anführungszeichen, dann ein beliebiger Text - der jedoch nicht mit http:// anfängt, und dann wieder Anführungszeichen?

    mit einem negativem lookahead:

    Regex: #^"(?!http).+"$#i
    str1: "das ist ein beliebiger Text."
    str2: "http://www.foo.de das ist ein Text mit http."

    past: "das ist ein beliebiger Text."
    past nicht: "http://www.foo.de das ist ein Text mit http."

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. gudn tach!

      Anführungszeichen, dann ein beliebiger Text - der jedoch nicht mit http:// anfängt, und dann wieder Anführungszeichen?
      mit einem negativem lookahead:

      Regex: #^"(?!http).+"$#i

      in perl braucht man i.d.r. die anfuehrungszeichen nicht zu maskieren. zudem ist .+ greedy und deshalb evtl. besser durch .+? zu ersetzen, also z.b.

      #"(?!http://).+?"#i

      aber vorsicht, der ausdruck wuerde z.b. auch
        " bla "
      in
        "http://foo" bla "http://bar"
      matchen.

      prost
      seth

      1. ei aaach so,

        in perl braucht man i.d.r. die anfuehrungszeichen nicht zu maskieren.

        bin immer übervorsichtig ;-)

        aber vorsicht, der ausdruck wuerde z.b. auch
          " bla "
        in
          "http://foo" bla "http://bar"
        matchen.

        hm, ja vielleicht besser sowas: [^"]+"$
        Aber so genau hat er seine Anforderungen nicht formuliert...

        prost

        erst wieder nach Sonnenuntergang, aber dann... ;-)

        Gruesse, Joachim

        --
        Am Ende wird alles gut.