Frage

Ich versuche, den richtigen Regulärer Ausdruck zu finden alle RT-Szenarien auf Twitter passen (nicht zu Twitters neuen Retweet-API warten). So wie ich es sehe, kann RT ist am Anfang, in der Mitte sein, oder das Ende der Zeichenfolge aus Twitter zurückgegeben. Also, ich brauche etwas am Anfang und Ende dieses Regulärer Ausdruck:

  

([Rr]) ([Tt])

Egal, was ich versuche, kann ich alle Szenarien nicht in einem regulären Ausdruck.
Ich habe versucht,

  

[^ | \ s +]

, um das Szenario zu entsprechen, wo die RT entweder am Anfang des Strings oder nach einem oder mehreren Leerzeichen erscheinen, aber es hat das gleiche für das Ende der Schnur oder RT nicht funktionieren.
Ich habe versucht,

  

[\ s + | $]

einen Fall entsprechen, wenn die RT entweder am Ende der Zeichenfolge erscheinen oder es gibt ein oder mehrere Leerzeichen folgt es, wie bei der ‚pre‘ -. Es nicht funktioniert

Kann jemand bitte erklären, was ich hier falsch mache? Jede Hilfe oder Anregungen wird sehr geschätzt werden (wie immer :))

War es hilfreich?

Lösung

Sie werden wahrscheinlich am glücklichsten sein mit so etwas wie:

/\brt\b/i

Welche wird vereinzelt von RT finden (das heißt, von Wort-Grenzen umgeben ist), und den /i Modifikator am Ende des Regex verwenden, um es Groß- und Kleinschreibung zu machen.

Sie möchten die Wortgrenzen, so dass Sie zufällige Tweets nicht am Ende denken, Wörter wie „Kunst“ und „Quartz“ sind eigentlich Retweets enthält. Selbst dann, es geht um Fehlalarme zu haben.

Standardmäßig wird ein regulärer Ausdruck kann (und wird) Spiel überall in einem String, so müssen Sie für nicht erklären, was Ihr Spiel vorangehen oder folgen kann, wenn in der Tat Sie interessiert nicht, was es ist, oder wenn es sich um vorhanden ist.

Andere Tipps

if(preg_match('/\brt\s*@(\w+)/i', $tweet, $match))
    echo 'Somebody retweeted ' . $match[1] . "\n";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top