Letztes Wort im Satz soll "completed" sein - wie mit preg_match?

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

  • Letztes Wort im Satz soll "completed" sein - wie mit preg_match?

    Hallo,

    wie kann ich mit Hilfe von preg_match ermitteln das sich das Wort "completed" am Satzende befindet und kein weiteres Wort folgt?

    Danke schon mal für eure Hilfe

  • #2
    Hallo,

    mit Satzende meinst du "direkt vor ., ! und ?"? Wenn ja, dann [FONT="Courier New"]"/\Wcompleted[.!?]/"[/FONT].

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Comment


    • #3
      nein ohne jegliche folgenden zeichen

      http://home-support.eu/search.php

      da ist zu sehen welche strings überprüft werden.
      Last edited by KickASS; 02-10-2009, 12:54.

      Comment


      • #4
        In diesem Fall entsteht weiterer Klärungsbedarf. Ist ein "Satz" bei dir dann die gesamte Zeichenkette und completed muss ganz am Ende stehen oder ist ein "Satz" eine Zeile und completed muss am Zeilenende stehen?

        Du kannst auch gerne einen Beispielstring posten und die completed-Vorkommen farblich kennzeichnen, ob sie als Treffer gelten sollen (grün) oder nicht (rot).

        Edit zu deinem Edit: "/\Wcompleted *$/m" (Das " *" ist nur, falls danach noch Leerzeichen kommen könnten.)

        Edit2: Du sagtest strings? Ist also jede Zeile ein eigener String? Wenn ja, dann nimm den m-Modifikator wieder weg.
        Last edited by AmicaNoctis; 02-10-2009, 13:02.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Comment


        • #5
          bingo!

          danke vielmals

          Comment


          • #6
            Falls das completed wirklich ganz am Ende stehen soll, also ohne weitere Leerzeichen, wäre das Problem mit einfachen Stringoperationen vielleicht schneller gelöst. Mit Betonung auf vielleicht - gemessen habe ich es nicht.

            PHP Code:
            $lastWord 'completed';
            if (
            substr($string, -strlen($lastWord)) == $lastWord) {
                
            // ...

            Dabei ist zu beachten, dass hiermit nicht geprüft wird, ob vor dem completed ein non-word Zeichen steht.

            Comment


            • #7
              @onemorenerd: Wenn es um Schnelligkeit geht, ist [FONT="Courier New"]-strlen($lastWord)[/FONT] geeigneter als eine Multiplikation mit -1
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Comment

              Working...
              X