Python – Extraer fecha en String

Dada una string, la tarea es escribir un programa en Python para extraer la fecha de ella.

Input : test_str = "gfg at 2021-01-04"
Output : 2021-01-04
Explanation : Date format string found.

Input : test_str = "2021-01-04 for gfg"
Output : 2021-01-04
Explanation : Date format string found.

Método #1: Usar los métodos re.search() + strptime()

En esto, el grupo de búsqueda para una fecha particular se introduce en search(), y se usa strptime() para introducir el formato que se va a buscar.

Python3

# Python3 code to demonstrate working of
# Detect date in String
# Using re.search() + strptime()
import re
from datetime import datetime
  
# initializing string
test_str = "gfg at 2021-01-04"
  
# printing original string
print("The original string is : " + str(test_str))
  
# searching string
match_str = re.search(r'\d{4}-\d{2}-\d{2}', test_str)
  
# computed date
# feeding format
res = datetime.strptime(match_str.group(), '%Y-%m-%d').date()
  
# printing result
print("Computed date : " + str(res))

Producción:

The original string is : gfg at 2021-01-04
Computed date : 2021-01-04

Método #2: Usar el módulo python-dateutil()

Esta es otra forma de resolver este problema. En esta biblioteca incorporada de Python python-dateutil, el método parse() se puede usar para detectar la fecha y la hora en una string. 

Python3

# Python3 code to demonstrate working of
# Detect date in String
# Using python-dateutil()
from dateutil import parser
  
# initializing string
test_str = "gfg at 2021-01-04"
  
# printing original string
print("The original string is : " + str(test_str))
  
# extracting date using inbuilt func.
res = parser.parse(test_str, fuzzy=True)
  
# printing result
print("Computed date : " + str(res)[:10])

Producción:

The original string is : gfg at 2021-01-04
Computed date : 2021-01-04

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *