Silvan Gehrig: RegExp -> Matching

Hi Folks,

Folgendes schwebt mir vor:

{
 c 120 Content
 c 180 Content
}

nun möchte ich alles zwischen den { } zu matchen; /{\n(.*?)\n}/gi
aber irgendwie bringt es des RegExp fertig, nichts zu tun :(

hat wer ne idee?

thx

Silvan

  1. Hallo Silvan,

    {
    c 120 Content
    c 180 Content
    }

    nun möchte ich alles zwischen den { } zu matchen;
    /{\n(.*?)\n}/gi
    aber irgendwie bringt es des RegExp fertig, nichts zu tun :(

    hat wer ne idee?

    Dir fehlt der Modifier 's'.

    Gruesse,
     CK

    1. Hi CK,

      Thanx for your answer.

      Ist es aber nicht eher der 'm' Modifier?
      irgendwie funzt de immer no ned :(

      Gruss Silvan

      Hallo Silvan,

      {
      c 120 Content
      c 180 Content
      }

      nun möchte ich alles zwischen den { } zu matchen;
      /{\n(.*?)\n}/gi
      aber irgendwie bringt es des RegExp fertig, nichts zu tun :(

      hat wer ne idee?

      Dir fehlt der Modifier 's'.

      Gruesse,
       CK

      1. Hallo Silvan,

        Ist es aber nicht eher der 'm' Modifier?

        Nein, 's'. 's' sorgt dafuer, dass '.' und '\s' auch auf
        Newlines matchen.

        irgendwie funzt de immer no ned :(

        Dann mach den RegEx etwas tolleranter:

        m!{([^}]*)}!s;

        Gruesse,
         CK

        1. Hi CK,

          Die Vereifachung ist eine sehr effiziente Methode :)
          Der folgende hat gefunzt:

          /{([^}]*?)}//gi

          *juhu* :)

          Thanx you for your help :)

          Gruss Silvan

          P.S: Have a look at http://www.mcdark.ch :)

          Hallo Silvan,

          Ist es aber nicht eher der 'm' Modifier?

          Nein, 's'. 's' sorgt dafuer, dass '.' und '\s' auch auf
          Newlines matchen.

          irgendwie funzt de immer no ned :(

          Dann mach den RegEx etwas tolleranter:

          m!{([^}]*)}!s;

          Gruesse,
           CK

          1. Hallo Silvan,

            Die Vereifachung ist eine sehr effiziente Methode :)
            Der folgende hat gefunzt:

            /{([^}]*?)}//gi

            Wenn du jetzt noch das ? weglaesst, ist der RegEx sogar
            schnell. :)

            Gruesse,
             CK

            1. Hi CK,

              Mal überlegen: den ungreedy benötige ich, was aber
              nicht unbedingt sein muss ist das doppelte Slash (//)
              also: /{([^}]*?)}/gi

              oky?

              Gruss Silvan

              Hallo Silvan,

              Die Vereifachung ist eine sehr effiziente Methode :)
              Der folgende hat gefunzt:

              /{([^}]*?)}//gi

              Wenn du jetzt noch das ? weglaesst, ist der RegEx sogar
              schnell. :)

              Gruesse,
               CK

              1. Hallo Silvan,

                Mal überlegen: den ungreedy benötige ich,

                Nein. Das von dir benutzt {(.*?)} ist dasselbe wie
                {[^}]*}, nur das der zweite Ausdruck schneller ist. Dein Ausdruck sagt: 'Finde mir alles bis zum Stringende. Ach nee,
                moment, nur bis zum naechsten }'. Mein Ausdruck sagt 'finde mir
                alles ausser }', was zwangslaeufig zum naechsten '}' fuehrt.

                Gruesse,
                 CK