[RegExp] Ende von Zeile aus File

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

  • [RegExp] Ende von Zeile aus File

    Ich versuche nun schon ewig, auf eine eingelesenen Zeile aus einem File (mittels fgets()) folgendes Suchmuster anzuwenden:

    Code:
    /\\t<key>(.*)<\/key>$/
    Durch das $-Zeichen will ich, dass das vorher am Textende stehen muss, sprich, danach dürfen keine Zeichen mehr kommen. Jedoch scheint das bei einem mit fgets eingelesenen Text nicht zu funktionieren, er findet keine Übereinstimmungen im ganzen File, obwohl das mehrmals der Fall sein müsste... wer kann mir da weiterhelfen?

  • #2
    Benutzt du den s-Modifier?
    Meinst du mit /t das Tab-Steuerzeichen? Falls ja, wieso maskierst du dann den Backslash?

    Zeig mal eine Beispielzeile aus der zu durchsuchenden Datei.
    Nieder mit der Camel Case-Konvention

    Kommentar


    • #3
      So etwas sollte z.B. gefunden werden:

      Code:
      	<key>einfachtext</key>
      Was bewirkt denn der s-Modifier? Bin noch nicht so erfahren mit RegEx.

      Kommentar


      • #4
        Probiers mal mit
        Code:
        /^\t<key>(.*?)<\/key>$/
        Der s-Modifier bewirkt, dass der Punkt `.` auch Newlines matcht.
        Nieder mit der Camel Case-Konvention

        Kommentar


        • #5
          ich glaube, dass modifer 'm' reicht

          http://www.regex-tester.de/uc_293_de.html
          Slava
          bituniverse.com

          Kommentar


          • #6
            Das funktioniert leider nicht... wenn ich das $ wegnehme funktioniert dein RegEx wunderbar, aber mit, findet er keine Ergebnisse (auch nicht in der von mir genannten Zeile)

            Kommentar


            • #7
              Original geschrieben von pascal007
              Das funktioniert leider nicht... wenn ich das $ wegnehme funktioniert dein RegEx wunderbar, aber mit, findet er keine Ergebnisse (auch nicht in der von mir genannten Zeile)
              dann schau mal, ob du nach deinem </key> kein zeilenumbruch hast.
              sonnst kannst du im regex zusätzlich \s* vor dem $ setzen.
              Slava
              bituniverse.com

              Kommentar


              • #8
                Danke! Mit dem \s* funktionierts. Was bewirken diese Zeichen genau, dass es jetzt funktioniert und vorher nicht?

                Kommentar


                • #9
                  koche dir Kaffe für ein paar Tagen
                  http://www.regenechsen.de/phpwcms/index.php?regex_allg
                  Slava
                  bituniverse.com

                  Kommentar

                  Lädt...
                  X