¿Cómo puedo extraer "20151101" (como cadena) de "Campaña el 01.11.2015"?

He leído este: Extracción de la fecha de una cadena en Python. Pero me estoy atascando al convertir del objeto Match a string.

1
Vũ Nam Hưng 12 may. 2016 a las 19:47

4 respuestas

La mejor respuesta

Con pequeños ajustes en la publicación mencionada anteriormente, puede hacer que funcione.

import re
from datetime import datetime

text = "Campaign on 01.11.2015"

match = re.search(r'\d{2}.\d{2}.\d{4}', text)
date = datetime.strptime(match.group(), '%d.%m.%Y').date()
print str(date).replace("-", "")
20151101
8
Nickil Maveli 9 dic. 2016 a las 09:35

Aquí hay una manera, usando re.sub():

import re

s = "Campaign on 01.11.2015"

new_s = re.sub(r"Campaign on (\d+)\.(\d+)\.(\d+)", r'\3\2\1', s)

print new_s

Y otro, usando re.match():

import re

s = "Campaign on 01.11.2015"

match = re.match(r"Campaign on (\d+)\.(\d+)\.(\d+)", s)
new_s = match.group(3)+match.group(2)+match.group(1)

print new_s
1
Robᵩ 12 may. 2016 a las 16:54

Vamos a volvernos locos: D

       "".join(reversed(a.split()[-1].split(".")))
0
Jarek Szymla 12 may. 2016 a las 16:54

Con magia de lista.

In [15]: ''.join(a.split()[-1].split('.')[::-1])
Out[15]: '20151101'
0
Rahul K P 12 may. 2016 a las 17:05