[Resuelto] Expresión regular. Obtener ancho x alto

Iniciado por OssoH, 12 Julio 2018, 12:27 PM

0 Miembros y 1 Visitante están viendo este tema.

OssoH

Tengo una cadena de texto y la idea es hacer una función php para que me extraiga el ancho y alto.
Había pensado utilizar patrones de búsqueda pero se me está atragantando.

Os pongo ejemplos de cadenas de texto donde el resultado en todos ellos deberia ser ancho=45 y alto =45

Ejemplo :
Almoralejos PXrla 45X45 2ºclase
Almoralejos PXrla 45 X 45 2ºclase
Almoralejos PXrla 45 x 45 2ºclase
Almoralejos PXrla 45X45 segunda clase
45X45 2ºclase Amoralejos PXrla

Gracias por cualquier sugerencia.

OssoH

Al final lo estoy haciendo usando varios bucles

WHK

#2
Hola, eso puedes hacerlo con preg_match_all() de php. Que has intentado programar? tienes algo hecho para darle un vistazo y ver en que estás fallando?.

Prueba con /(\d+)X(\d+)/

Saludos.

OssoH

En ese caso por ejemplo la cadena
Almoralejos PXrla 45 x 45 2ºclase
no la detectaría porque tiene espacios a cada lado de la 'X'.

Pero no obstante gracias por tu sugerencia. Voy a investigar más lo de los patrones.

Shell Root

#4
Siguiendo con el patrón de WHK, podría ser así...
(\d+\s*)X(\s*\d+)

Almoralejos PXrla 45X45 2ºclase
Almoralejos PXrla 45 X 45 2ºclase
Almoralejos PXrla 45 x 45 2ºclase
Almoralejos PXrla 45X45 segunda clase
45X45 2ºclase Amoralejos PXrla

Creo que la X o x se puede solucionar con el flag /i, o pues al bruteforce
(\d+\s*)[X|x](\s*\d+)


Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

srWhiteSkull

Cita de: Shell Root en 13 Julio 2018, 16:55 PM
Siguiendo con el patrón de WHK, podría ser así...
(\d+\s*)X(\s*\d+)

Almoralejos PXrla 45X45 2ºclase
Almoralejos PXrla 45 X 45 2ºclase
Almoralejos PXrla 45 x 45 2ºclase
Almoralejos PXrla 45X45 segunda clase
45X45 2ºclase Amoralejos PXrla

Creo que la X o x se puede solucionar con el flag /i, o pues al bruteforce
(\d+\s*)[X|x](\s*\d+)

Totalmente de acuerdo...

Si queréis probar rápidamente os recomiendo esta página: https://regexr.com/

WHK

#6
Prueba con /(\d+)\s*x+\s*(\d+)/gi

https://regexr.com/3sdnh

OssoH

Que grandes sois!!!
Si, funciona
Y la web que me habéis pasado para el simulacro es perfecta para pruebas y aprender.

Muchas gracias a todos!!
;-) ;-) ;-)