Foros del Web » Programando para Internet » PHP »

Capturar texto entre comillas con expresiones regulraes

Estas en el tema de Capturar texto entre comillas con expresiones regulraes en el foro de PHP en Foros del Web. Hola! Estoy atascado en un proyecto, porque no consigo capturar el texto entre comillas o entre otros caracteres. Me explico mejor. Yo con esta ereg: ...
  #1 (permalink)  
Antiguo 01/03/2018, 14:25
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Capturar texto entre comillas con expresiones regulraes

Hola!
Estoy atascado en un proyecto, porque no consigo capturar el texto entre comillas o entre otros caracteres.
Me explico mejor.
Yo con esta ereg:
Código:
/".+"/g
y con este texto:

Cita:
quiero capturar "este texto" y lo captura
consigo sacar "este texto" que es lo que quiero.

El problema es, que cuando hay mas comillas en la misma linea, busca hasta las ultimas comillas sin parar en cada comillas que encuentra y en el siguiente texto:

Cita:
Ya no consigo dividir "este texto" ya que coge tambien "este otro texto" porque coge hasta las ultimas comillas.
me recoge todo esto: "este texto" ya que coge tambien "este otro texto"

¿Como puedo hacer para que lea un patron y pare a la primera aparicion del caracter que le indique?

Dicho en pseudocodigo sería algo asi:
Cita:
lee lo que hay despues de encontrar unas comillas y para de leer al encontrar de nuevo las primeras comillas que te encuentres"
Gracias!
__________________
Tecnología y tutoriales
  #2 (permalink)  
Antiguo 02/03/2018, 04:33
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Capturar texto entre comillas con expresiones regulraes

Sigo buscando soluciones, pero no lo encuentro...
He encontrado algo pero que no me funciona:
.*?
__________________
Tecnología y tutoriales
  #3 (permalink)  
Antiguo 02/03/2018, 07:42
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Capturar texto entre comillas con expresiones regulraes

Cita:
Iniciado por dryant Ver Mensaje
¿Como puedo hacer para que lea un patron y pare a la primera aparicion del caracter que le indique?
Retira el modificador g puesto que con él se realiza una búsqueda global.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 02/03/2018, 08:02
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Capturar texto entre comillas con expresiones regulraes

No se, se me ocurre algo así:

Código PHP:
Ver original
  1. $texto = 'Este es "un texto cualquiera" de toda una cadena de "jodidas tonterías" a las que no se llega a nada';
  2.  
  3. preg_match('/".+"/', $texto, $sale, PREG_OFFSET_CAPTURE);//separamos las coincidencias dentro de la cadena retornando un array
  4. $lista = explode('" ',$sale[0][0]);//separamos por el caracter de control, este caso comillas seguidas de espacio
  5. echo str_replace("\"","",$llista[0]);//tomamos la primera coincidencia de la cadena, eliminando las comillas iniciales

esto nos retorna un texto cualquiera que es lo que buscamos.

o de esta otra manera:

Código PHP:
Ver original
  1. $texto = 'Este es "un texto cualquiera" de toda una cadena de "jodidas tonterías" a las que no se llega a nada';
  2. preg_match('/".*?"/', $texto, $sale, PREG_OFFSET_CAPTURE);//separamos las coincidencias dentro de la cadena
  3. print_r($sale);

esto nos retorna un array con la coincidencia así como la posición en la que se encuentra, en este caso la primera frase encerrada entre comillas
__________________
[email protected]
HITCEL

Etiquetas: comillas, expresiones
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 13:17.