"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Procesar espacios en blanco opcionales en expresiones regulares para extraer datos con precisión

Procesar espacios en blanco opcionales en expresiones regulares para extraer datos con precisión

Publicado el 2025-04-14
Navegar:488

How to Handle Optional Whitespace in Regular Expressions for Accurate Data Extraction?

Whitespace opcional regex: ignorando los espacios en los valores de atributo

en la programación, hay escenarios en los que necesita manejar las instancias donde las impresiones contienen blancas opcionales. Esto puede ser un desafío al escribir expresiones regulares para extraer datos con precisión.

Considere el siguiente código:

# Get Image data
preg_match('#<a href="(.*?)" title="(.*?)"><img alt="(.*?)" src="(.*?)"[\s*]width="150"[\s*]height="(.*?)"></a>#', $data, $imagematch);
$image = $imagematch[4];

Este código extrae el atributo SRC de una imagen de HTML Markup. Sin embargo, no maneja casos en los que no hay espacio en blanco entre ciertos atributos, como:

<a href="/wiki/File:Sky1.png" title="File:Sky1.png"><img alt="Sky1.png" src="http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png"width="150" height="84"></a>

o

<a href="/wiki/File:TallGrass.gif" title="File:TallGrass.gif"><img alt="TallGrass.gif" src="http://media-mcw.cursecdn.com/3/34/TallGrass.gif" width="150"height="150"></a>

Para abordar este problema, podemos usar opcional Whitespace Regex. Esto nos permite ignorar los espacios intermedios entre los personajes. Aquí está cómo:

#<a href\s?="(.*?)" title\s?="(.*?)"><img alt\s?="(.*?)" src\s?="(.*?)"[\s*]width\s?="150"[\s*]height\s?="(.*?)"></a>#
en esta expresión regular actualizada:

[&] \ s? antes = significa que un espacio está permitido pero opcional.

    \ s* después de que el valor del atributo permite un espacio opcional después del nombre y valor del atributo.
Declaración de liberación Este artículo se reproduce en: 1729729039 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3