Question

Je suis en train de trouver l'expression régulière correcte pour correspondre à tous les scénarios RT sur Twitter (ne peut pas attendre de nouvelles API de Twitter retweet). La façon dont je le vois, inhalothérapeutes peut être au début, au milieu ou à la fin de la chaîne retournée de Twitter. , Je dois donc quelque chose au début et à la fin de cette expression régulière:

  

([Rr]) ([Tt])

Peu importe ce que j'essaie, je ne peux pas correspondre à tous les scénarios dans une expression régulière.
J'ai essayé

  

[^ | \ s +]

pour correspondre au scénario où la RT apparaît soit au début de la chaîne ou après un ou plusieurs espaces, mais ça n'a pas la même pour la fin de la chaîne ou RT.
J'ai essayé

  

[\ s + | $]

pour correspondre à un cas où la RT apparaît soit à la fin de la chaîne ou il y a un ou plusieurs espaces suivants, il même que le « pré » -. Il ne fonctionne pas

Quelqu'un peut-il expliquer ce que s'il vous plaît que je fais mal ici? Toute aide ou suggestions seront très appréciées (comme toujours :))

Était-ce utile?

La solution

Vous serez probablement plus heureux avec quelque chose comme:

/\brt\b/i

Ce qui va trouver des cas isolés de RT (qui est entouré par mot-frontières), et utiliser le modificateur de /i à la fin de la regex pour le rendre insensible à la casse.

Vous voulez que les limites de mots de sorte que vous ne finissent pas penser tweets aléatoires contenant des mots tels que « Art » et « Quartz » sont en fait retweets. Même alors, il va avoir des faux positifs.

Par défaut, une expression régulière peut (et) Ne importe où dans une chaîne, de sorte que vous n'avez pas besoin de rendre compte de ce qui peut précéder ou suivre votre match si bien que vous ne vous souciez pas ce qu'il est ou si elle est présent.

Autres conseils

if(preg_match('/\brt\s*@(\w+)/i', $tweet, $match))
    echo 'Somebody retweeted ' . $match[1] . "\n";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top