Comparación de cadenas que no distinguen entre mayúsculas y minúsculas en PowerShell
Este tutorial trata sobre la comparación de cadenas que no distinguen entre mayúsculas y minúsculas en PowerShell. Este es un requisito muy común cuando se trabaja con cadenas. Le mostraré cómo hacer comparaciones de cadenas que no distinguen entre mayúsculas y minúsculas en PowerShell utilizando varios métodos.
Para comparar cadenas sin distinguir entre mayúsculas y minúsculas en PowerShell, puede utilizar el operador -ieq, que especifica explícitamente una comparación que no distingue entre mayúsculas y minúsculas. Por ejemplo:
$state1 = "California"
$state2 = "california"
if ($state1 -ieq $state2) {
Write-Output "The states are the same."
} else {
Write-Output "The states are different."En este caso, el resultado será "Los estados son los mismos". porque -ieq realiza una comparación que no distingue entre mayúsculas y minúsculas.
Aquí hay 5 métodos diferentes y ejemplos para “PowerShell compara cadenas sin distinguir entre mayúsculas y minúsculas”.
1. Usando el operador -eq
De forma predeterminada, el operador -eq en PowerShell realiza una comparación que no distingue entre mayúsculas y minúsculas. Esto facilita la comparación de dos cadenas sin preocuparse por las mayúsculas y minúsculas.
Aquí tenéis un guión completo.
$city1 = "New York"
$city2 = "new york"
if ($city1 -eq $city2) {
Write-Output "The cities are the same."
} else {
Write-Output "The cities are different."
}En este ejemplo, el resultado será "Las ciudades son iguales". porque el operador -eq ignora mayúsculas y minúsculas de forma predeterminada.
Ejecuté el script anterior; Puede ver que dio el resultado exacto a continuación.
Lea Agregar comillas dobles en una cadena en PowerShell
2. Usando el operador -ieq
El operador -ieq especifica explícitamente una comparación que no distingue entre mayúsculas y minúsculas. Se comporta igual que el operador -eq pero deja claro en el script que la comparación no distingue entre mayúsculas y minúsculas.
Aquí hay un ejemplo.
$state1 = "California"
$state2 = "california"
if ($state1 -ieq $state2) {
Write-Output "The states are the same."
} else {
Write-Output "The states are different."
}El resultado será "Los estados son iguales". debido a la comparación que no distingue entre mayúsculas y minúsculas.
Después de ejecutar el script de PowerShell usando el código VS, puede ver la captura de pantalla a continuación.
3. Usando el operador -match
El operador -match en PowerShell se utiliza para comparaciones de expresiones regulares y no distingue entre mayúsculas y minúsculas de forma predeterminada. Esto puede resultar útil cuando necesite realizar una coincidencia de patrones.
Aquí hay un ejemplo.
$address = "123 Main St, San Francisco, CA"
$pattern = "san francisco"
if ($address -match $pattern) {
Write-Output "The address contains San Francisco."
} else {
Write-Output "The address does not contain San Francisco."
}En este ejemplo, el resultado será "La dirección contiene San Francisco". porque -match ignora mayúsculas y minúsculas.
Lea ¿Cómo recortar cadenas en PowerShell?
4. Uso del operador -contiene
El operador PowerShell -contains comprueba si una colección contiene un valor específico y no distingue entre mayúsculas y minúsculas de forma predeterminada.
Aquí hay un ejemplo.
$cities = @("Los Angeles", "Chicago", "Houston")
$searchCity = "chicago"
if ($cities -contains $searchCity) {
Write-Output "The city is in the list."
} else {
Write-Output "The city is not in the list."
}
Aquí, el resultado será "La ciudad está en la lista". porque -contains realiza una comprobación que no distingue entre mayúsculas y minúsculas.
5. Usando el método .ToLower()
Este es otro método útil para comparar cadenas que no distinguen entre mayúsculas y minúsculas en PowerShell.
Puede convertir ambas cadenas a minúsculas (o mayúsculas) y luego compararlas. Este método garantiza que la comparación no distinga entre mayúsculas y minúsculas en PowerShell.
A continuación se muestra un ejemplo de cómo utilizar el método .ToLower() para convertir ambas cadenas a minúsculas y luego compararlas.
$president1 = "Barack Obama"
$president2 = "barack obama"
if ($president1.ToLower() -eq $president2.ToLower()) {
Write-Output "The presidents are the same."
} else {
Write-Output "The presidents are different."
}
En este caso, el resultado será "Los presidentes son los mismos". porque ambas cadenas se convierten a minúsculas antes de la comparación.
Mire la captura de pantalla a continuación. Ejecuté el script anterior, que muestra el resultado exacto requerido.
Conclusión
PowerShell proporciona varias formas de realizar comparaciones de cadenas que no distinguen entre mayúsculas y minúsculas. Al igual que usted, utilice operadores de PowerShell como -eq, -ieq, -match o métodos como .ToLower(), lo que garantiza que las comparaciones de cadenas sean precisas y no distingan entre mayúsculas y minúsculas.
Espero que esto ayude; por favor comente a continuación si todavía tiene alguna pregunta.


