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ó
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
- Què és PowerShell?
- Instal·lació i Configuració de PowerShell
- Consola i ISE de PowerShell
- Comandes i Sintaxi Bàsiques
- Sistema d'Ajuda en PowerShell
Mòdul 2: Scripting Bàsic
- Variables i Tipus de Dades
- Operadors en PowerShell
- Sentències Condicionals
- Bucles en PowerShell
- Funcions i Scripts
Mòdul 3: Treballant amb Objectes
- Comprensió dels Objectes
- Propietats i Mètodes dels Objectes
- Pipelines i Manipulació d'Objectes
- Filtratge i Selecció d'Objectes
- Ordenació i Agrupació d'Objectes
Mòdul 4: Tècniques Avançades de Scripting
- Gestió d'Errors
- Depuració de Scripts
- Expressions Regulars
- Treballant amb Fitxers i Directoris
- Ús de Mòduls i Snap-ins
Mòdul 5: Automatització i Programació de Tasques
- Introducció a l'Automatització
- Creació de Tasques Programades
- Ús de PowerShell per a l'Administració del Sistema
- Automatització de Tasques d'Active Directory
- Automatització de Tasques de Xarxa
Mòdul 6: Remotització amb PowerShell
- Introducció a la Remotització
- Configuració de la Remotització
- Ús d'Invoke-Command
- Gestió de Sessions
- Consideracions de Seguretat
Mòdul 7: Funcions Avançades de PowerShell
- Perfils de PowerShell
- Personalització de l'Entorn de PowerShell
- Creació i Ús de Classes
- Treballant amb XML i JSON
- Ús de PowerShell amb REST APIs
Mòdul 8: PowerShell i DevOps
- Introducció a DevOps
- Ús de PowerShell amb Pipelines CI/CD
- Infraestructura com a Codi (IaC)
- Gestió de Recursos al Núvol amb PowerShell
- PowerShell i Docker