Extraer textos usando Regex en PowerShell
A veces necesitamos extraer texto específico de un texto grande con un patrón específico. Suponga que tiene un texto como el siguiente y desea extraer los correos electrónicos de este texto.
Alen <alen@gmail.com>, Stefen <stefen@gmail.com>, Walker <walker@gmail.com>
Debe tener en cuenta que todos los correos electrónicos están encerrados por los símbolos <
y >
.
La mejor manera de hacer la tarea es usar la palabra clave más popular de PowerShell, regex
. Con esta palabra clave, puede proporcionar un patrón específico que debe coincidir al realizar la tarea.
Este artículo mostrará cómo extraer una subcadena específica de una cadena usando la palabra clave regex
. Además, veremos ejemplos y explicaciones necesarias para facilitar el tema.
Extraiga textos usando regex
en PowerShell
En nuestro ejemplo compartido a continuación, extraeremos todos los correos electrónicos de la cadena. El código de nuestro ejemplo será el siguiente:
$MyText = 'Alen <alen@gmail.com>, Stefen <stefen@gmail.com>, Walker <walker@gmail.com>'
$MyPattern = '(?<=\<).+?(?=\>)'
[regex]::Matches($MyText, $MyPattern).Value
En la primera línea del ejemplo anterior, primero declaramos una variable de cadena que contendrá la cadena dada. Después de eso, proporcionamos un patrón específico que debe coincidir.
El patrón se describe brevemente a continuación:
(?<=\<)
: es la mirada positiva hacia atrás que coincide solo si el carácter especificado precede al texto. Sin embargo, no incluye los personajes dentro del partido.+?
- capturas (+
) de cualquier carácter uno o más. Pero sólo unos pocos caracteres son posibles.(?=\>)
: la anticipación positiva que coincide solo si el texto sigue al carácter especificado. No incluye el personaje dentro de los partidos.
Por último, hacemos coincidir el patrón y extraemos los correos electrónicos del texto.
Después de ejecutar el ejemplo anterior, obtendrá un resultado como el siguiente:
alen@gmail.com
stefen@gmail.com
walker@gmail.com
Tenga en cuenta que los códigos de ejemplo que se comparten aquí solo se pueden ejecutar en el entorno de Windows PowerShell.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn