Pregunta

Estoy tratando de encontrar la expresión regular correcta para que coincida con todos los escenarios RT en Twitter (no puedo esperar a la nueva API de retweets de Twitter). La forma en que lo veo, RT puede ser al principio, en medio o al final de la cadena de regresar de Twitter. Por lo tanto, necesito algo al principio y al final de este Expresión regular:

  

([Rr]) ([Tt])

No importa lo que intento, no puedo coincidir con todos los escenarios en una expresión regular.
Probé

  

[^ | \ s +]

para que coincida con el escenario en el que el RT aparecerá ya sea al principio de la cadena o después de uno o más espacios en blanco, pero no funcionan de la misma para el final de la cadena o RT.
Probé

  

[\ s + | $]

para que coincida con un caso en que el RT aparece ya sea en el extremo de la cuerda o hay uno o más espacios en blanco que le sigue, lo mismo que con el 'pre' -. No funcionó

Por favor alguien puede explicar lo que estoy haciendo mal aquí? Cualquier ayuda o sugerencias serán muy apreciados (como siempre :))

¿Fue útil?

Solución

Es probable que sea más feliz con algo como:

/\brt\b/i

¿Qué va a encontrar casos aislados de RT (es decir, rodeado de palabras límites), y utilizar el modificador /i al final de la expresión regular para que sea sensible a las mayúsculas.

Usted quiere que los límites de palabras para que no terminen pensando Tweets de azar que contienen palabras como "arte" y "cuarzo" esté retweets. Incluso entonces, va a tener falsos positivos.

Por defecto, una expresión regular puede (y será) partido en cualquier lugar dentro de una cadena, por lo que no es necesario dar cuenta de lo que puede preceder o seguir a su pareja si es que no le importa lo que es o si es presente.

Otros consejos

if(preg_match('/\brt\s*@(\w+)/i', $tweet, $match))
    echo 'Somebody retweeted ' . $match[1] . "\n";
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top