Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Expresion regular que busque espacios pegados a las etiquetas

Estas en el tema de Expresion regular que busque espacios pegados a las etiquetas en el foro de PHP en Foros del Web. Hola a [email protected] Necesito crear un patron con expresiones regulares que busque si en un texto que contiene una o varias etiquetas hay espacios en ...
  #1 (permalink)  
Antiguo 20/01/2019, 02:30
 
Fecha de Ingreso: enero-2014
Mensajes: 85
Antigüedad: 5 años, 7 meses
Puntos: 2
Expresion regular que busque espacios pegados a las etiquetas

Hola a [email protected]
Necesito crear un patron con expresiones regulares que busque si en un texto que contiene una o varias etiquetas hay espacios en blanco delante y/o detras de estas y si encuentra alguno me muestre el texto donde lo ha encontrado, pero no consigo hacer el patrón y que funcione correctamente.
Este es el array con los string
Código PHP:
Ver original
  1. $listaTextos = array(
  2.         '<strong>En un lugar de la Mancha, <br>cuyo nombre no quiero acordarme…</strong>',
  3.         ' <strong>Erase una vez<strong>',
  4.         '<strong>En un lugar de la Mancha<strong><br>de cuyo',
  5.        
  6.     );
  7.  
  8. $patron =
Y este es el if con el que me muestra los textos que cumplen la condición
Código PHP:
Ver original
  1. foreach ($listaTextos as $texto) {
  2.         $esCoincidente = preg_match($patron, $texto);
  3.  
  4.         if ($esCoincidente) {
  5.             echo "<br/>Textos encontrados: " . $texto;
  6.         }
  7.     }
En este ejemplo me deberia de mostrar el primero, pues tiene un espacio delante de <br> y el segundo que lo tiene delante de <strong> si en vez de estar delante, el espacio en blanco estuviera detrás de la etiqueta, lógicamente también me lo debería de mostrar
  #2 (permalink)  
Antiguo 23/01/2019, 03:23
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 7 años, 1 mes
Puntos: 39
Respuesta: Expresion regular que busque espacios pegados a las etiquetas

Buenas, podrías probar con este patrón:

Código PHP:
Ver original
  1. $patron = /\s\<\/?[a-zA-Z]+\>/;

Te explico el patrón:

- \s\< busca un espacio en blanco seguido de el signo "<".
- \/? indica que puede haber una barra de cierre de etiqueta o no detrás del signo "<".
- [a-zA-Z]+ Busca cualquier coincidencia de letras en minúsculas o mayúsculas.
- \> Segido de únicamente letras debe haber un signo ">" que cierra la etiqueta.

Aquí puedes ver como funciona el patrón: https://regexr.com/46unj. Esta es una herramienta magnífica para buscar expresiones regulares para tus diferentes problemas.
__________________
Diseño Web - Arisman Web
  #3 (permalink)  
Antiguo 23/01/2019, 16:53
 
Fecha de Ingreso: enero-2014
Mensajes: 85
Antigüedad: 5 años, 7 meses
Puntos: 2
Respuesta: Expresion regular que busque espacios pegados a las etiquetas

Pero como también quiero que me busque el espacio detrás de las etiquetas, le he añadido \s\ al final pero no funciona

Código PHP:
Ver original
  1. '<strong> En este ejemplo tiene el espacio detras de la etiqueta<strong>',
  2.  
  3. $patron = '/<\/?[a-zA-Z]+\>\s/';
Y con este patrón me busca el espacio detrás de la etiqueta, pero necesito que lo busque delante y detras

Última edición por pedromir; 25/01/2019 a las 10:46
  #4 (permalink)  
Antiguo 25/01/2019, 12:20
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 7 años, 1 mes
Puntos: 39
Respuesta: Expresion regular que busque espacios pegados a las etiquetas

Cita:
Iniciado por pedromir Ver Mensaje
Pero como también quiero que me busque el espacio detrás de las etiquetas, le he añadido \s\ al final pero no funciona

Código PHP:
Ver original
  1. '<strong> En este ejemplo tiene el espacio detras de la etiqueta<strong>',
  2.  
  3. $patron = '/<\/?[a-zA-Z]+\>\s/';
Y con este patrón me busca el espacio detrás de la etiqueta, pero necesito que lo busque delante y detras

No sé si te funcionará algo asi:

Código PHP:
Ver original
  1. $patron = /(?:(\s\<\/?[a-zA-Z]+\>)|(\<\/?[a-zA-Z]+\>\s))/;

No lo he probado. La barra vertical indica una comparación OR. Pruebala, de todas formas hay mucha documentación en internet sobre expresiones regulares, son muy complejas y muy útiles, no está de más aprender lo básico porque si eres programador te darás cuenta que con ellas puedes ahorrar mucho código en muchas ocasiones.
__________________
Diseño Web - Arisman Web
  #5 (permalink)  
Antiguo 27/01/2019, 14:59
 
Fecha de Ingreso: enero-2014
Mensajes: 85
Antigüedad: 5 años, 7 meses
Puntos: 2
Respuesta: Expresion regular que busque espacios pegados a las etiquetas

Genial, funciona perfectamente, muchas gracias

Última edición por pedromir; 21/02/2019 a las 09:10

Etiquetas: espacios, etiquetas, expresion, funcion, regular
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 11:19.