Les expressions regulars (regex) són una eina potent per a la manipulació i validació de cadenes de text. En PowerShell, les expressions regulars es poden utilitzar per cercar, substituir i validar patrons en cadenes de text. Aquest tema cobrirà els conceptes bàsics de les expressions regulars, com utilitzar-les en PowerShell i proporcionarà exemples pràctics i exercicis per reforçar l'aprenentatge.

Conceptes Bàsics de les Expressions Regulars

Què és una Expressió Regular?

Una expressió regular és una seqüència de caràcters que defineix un patró de cerca. Aquest patró es pot utilitzar per trobar coincidències en cadenes de text.

Components d'una Expressió Regular

  • Caràcters literals: Coincideixen exactament amb els caràcters en el text.
  • Metacaràcters: Caràcters especials que tenen significats específics en les expressions regulars (p. ex., . per a qualsevol caràcter, * per a zero o més repeticions).
  • Classes de caràcters: Conjunts de caràcters dins de claudàtors [] que coincideixen amb qualsevol caràcter del conjunt.
  • Ancoratges: Indiquen la posició en el text on ha de coincidir el patró (p. ex., ^ per al començament de la línia, $ per al final de la línia).

Exemples de Metacaràcters i Classes de Caràcters

Metacaràcter Descripció
. Qualsevol caràcter excepte una nova línia
\d Qualsevol dígit (equivalent a [0-9])
\w Qualsevol caràcter de paraula (equivalent a [a-zA-Z0-9_])
\s Qualsevol espai en blanc (espai, tabulador, nova línia)
* Zero o més repeticions del caràcter anterior
+ Una o més repeticions del caràcter anterior
? Zero o una repetició del caràcter anterior
^ Començament de la línia
$ Final de la línia

Utilització d'Expressions Regulars en PowerShell

Cmdlets Relacionats amb Expressions Regulars

PowerShell proporciona diversos cmdlets que permeten treballar amb expressions regulars:

  • Select-String: Cerca un patró en un text.
  • -match i -notmatch: Operadors per comprovar si una cadena coincideix amb un patró.
  • -replace: Substitueix un patró en una cadena per un altre text.

Exemples Pràctics

Exemple 1: Cerca de Patrons amb Select-String

# Cerca totes les línies en un fitxer que continguin una adreça de correu electrònic
Select-String -Path "C:\path\to\file.txt" -Pattern "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"

Exemple 2: Validació de Patrons amb -match

# Comprova si una cadena és una adreça de correu electrònic vàlida
$email = "[email protected]"
if ($email -match "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b") {
    Write-Output "L'adreça de correu és vàlida."
} else {
    Write-Output "L'adreça de correu no és vàlida."
}

Exemple 3: Substitució de Patrons amb -replace

# Substitueix totes les adreces de correu electrònic en una cadena per "[email protected]"
$text = "Contacta'ns a [email protected] o [email protected]."
$updatedText = $text -replace "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b", "[email protected]"
Write-Output $updatedText

Exercicis Pràctics

Exercici 1: Cerca de Números de Telèfon

Crea un script que cerqui números de telèfon en un fitxer de text. Els números de telèfon tenen el format (123) 456-7890.

Solució

Select-String -Path "C:\path\to\file.txt" -Pattern "\(\d{3}\) \d{3}-\d{4}"

Exercici 2: Validació de Codis Postals

Escriu un script que validi si una cadena és un codi postal dels Estats Units (format de 5 dígits o 5 dígits seguit de 4 dígits).

Solució

$zipcode = "12345-6789"
if ($zipcode -match "^\d{5}(-\d{4})?$") {
    Write-Output "El codi postal és vàlid."
} else {
    Write-Output "El codi postal no és vàlid."
}

Exercici 3: Substitució de Dates

Escriu un script que substitueixi totes les dates en format dd/mm/yyyy per yyyy-mm-dd en una cadena de text.

Solució

$text = "La data de l'esdeveniment és 25/12/2023."
$updatedText = $text -replace "\b(\d{2})/(\d{2})/(\d{4})\b", '$3-$2-$1'
Write-Output $updatedText

Resum

En aquesta secció, hem après els conceptes bàsics de les expressions regulars i com utilitzar-les en PowerShell per cercar, validar i substituir patrons en cadenes de text. Hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. Les expressions regulars són una eina molt potent i versàtil que pot simplificar moltes tasques de manipulació de text en PowerShell.

Curs de PowerShell

Mòdul 1: Introducció a PowerShell

Mòdul 2: Scripting Bàsic

Mòdul 3: Treballant amb Objectes

Mòdul 4: Tècniques Avançades de Scripting

Mòdul 5: Automatització i Programació de Tasques

Mòdul 6: Remotització amb PowerShell

Mòdul 7: Funcions Avançades de PowerShell

Mòdul 8: PowerShell i DevOps

Mòdul 9: Millors Pràctiques i Consells Avançats

© Copyright 2024. Tots els drets reservats