Foros del Web » Programando para Internet » Python »

Encontrar cadena situada antes de otra busqueda

Estas en el tema de Encontrar cadena situada antes de otra busqueda en el foro de Python en Foros del Web. Siento que el titulo describa poco.. no sabia como preguntarlo. Aqui va, tengo un texto tal que asi. Código: el coche es blanco y azul ...
  #1 (permalink)  
Antiguo 04/10/2011, 11:20
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Encontrar cadena situada antes de otra busqueda

Siento que el titulo describa poco.. no sabia como preguntarlo.

Aqui va, tengo un texto tal que asi.

Código:
el coche es blanco y azul
el árbol es grande y verde
el perro es negro y pequeño
el puente es negro y grande
Ya se que podria meterlo en una BD y todo seria mas facil.. pero lo que necesito es buscar en todas las lineas que aparece "grande", de esas mostrar la palabra que sigue a "el" (en el ejemplo, árbol y puente)

¿Como podria hacerlo?
  #2 (permalink)  
Antiguo 04/10/2011, 11:28
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Encontrar cadena situada antes de otra busqueda

Debe haber maneras más pythonicas de hacerlo, pero puedes hacer un split() (que retorna una lista) de la oración y buscar la palabra grande y luego tomar el segundo elemento de la lista, esto tomando en cuenta que todas las oraciones tienen la misma estructura.

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 04/10/2011, 11:57
 
Fecha de Ingreso: octubre-2011
Mensajes: 45
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Encontrar cadena situada antes de otra busqueda

Ese, es el problema que no todas las frases tienen la misma estructura..
  #4 (permalink)  
Antiguo 04/10/2011, 11:59
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Encontrar cadena situada antes de otra busqueda

Pues entonces, solo hay que buscar el indice de la palabra "el" y tomar el siguiente.

Saludos
__________________
Grupo Telegram Docker en Español
  #5 (permalink)  
Antiguo 04/10/2011, 12:02
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Encontrar cadena situada antes de otra busqueda

Creo que esto es un trabajo para expresiones regulares.

Aquí un ejemplo con split:
Código Python:
Ver original
  1. oraciones = [u"el coche es blanco y azul",
  2.              u"el árbol es grande y verde",
  3.              u"el perro es negro y pequeño",
  4.              u"el puente es negro y grande",
  5.              ]
  6.  
  7. for oracion in oraciones:
  8.     if "grande" in oracion:
  9.         palabras = oracion.split()
  10.         print palabras[1]

Y aquí otro con expresiones regulares.
Código Python:
Ver original
  1. import re
  2. oraciones = [u"el coche es blanco y azul",
  3.              u"el árbol es grande y verde",
  4.              u"el perro es negro y pequeño",
  5.              u"el puente es negro y grande",
  6.              ]
  7. pattern = re.compile("^el (\w+) es (grande y \w+|\w+ y grande)$", re.U)
  8.  
  9. for oracion in oraciones:
  10.     p = pattern.search(oracion)
  11.     if p:
  12.         print p.group(1)

Otra cosa que no entiendo como es que sería mas fácil meterlo a una base de datos. Si en Python puedes hacer manipulaciones mas complejas.

Etiquetas: encontrar, busquedas, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:55.