Necesito ayuda sobre expresiones regulares. Estoy trabajando en algunos datos de Twitter y hay muchos tweets que contienen texto como este: # something1 @ something2. Estoy tratando de encontrar una manera de encontrar subcadenas como esa y reemplazarla con # something1 @ something2. Yo uso Python 3. ¿Cómo puedo hacer esto? ¡Gracias!

1
Nikos Syris 31 mar. 2017 a las 22:57

2 respuestas

La mejor respuesta

Use mirar hacia atrás para verificar que no hay espacio:

s = re.sub(r'(?<=\S)@', ' @', s)

Para hacer esto solo si hay un "conectado" #:

s = re.sub(r'(#\S+)@', r'\1 @', s)
1
trincot 8 abr. 2017 a las 07:34

Solo desea encontrar un hashtag y un nombre de usuario que no estén separados por un espacio y cambiarlos para que estén separados por un espacio. De hecho, podemos usar una expresión regular para unirlas.

sourceTweet = "lorem ipsum #dolor@sitamet Nullam sed est #vel@mi "
outputTweet = re.sub(r'(?<!\w)(#\w+)(@\w+)', r'\1 \2', sourceTweet)
#lorem ipsum #dolor @sitamet Nullam sed est #vel @mi
0
Juan Cortés 31 mar. 2017 a las 20:40