Búsqueda de sitios web

Compruebe si la cadena contiene una subcadena en PowerShell [4 formas]


1. Descripción general

En las secuencias de comandos de PowerShell, un requisito común es verificar si una cadena contiene una subcadena específica. Esta es una tarea fundamental en el procesamiento de textos, a menudo utilizada en lógica condicional, validación de datos u operaciones de filtrado.

En este artículo, veremos diferentes formas de comprobar si una cadena contiene una subcadena usando varios métodos como el operador like, el operador match, contains() método, etc.

2. Introducción al planteamiento del problema

Dada una cadena y una subcadena, nuestro objetivo es comprobar si la cadena contiene una subcadena distinguiendo entre mayúsculas y minúsculas.

Por ejemplo, dada la cadena "Hello World", es posible que queramos comprobar si contiene la subcadena "world". Dependiendo del método utilizado, esta verificación puede distinguir entre mayúsculas y minúsculas (diferenciar entre "Mundo" y "mundo") o no distinguir entre mayúsculas y minúsculas (tratar a ambos como iguales).

3. Uso del método .Contains() (distingue entre mayúsculas y minúsculas)

La forma más sencilla es utilizar el método Contains() de la cadena.

Contains() es un método de cadena que comprueba si la cadena contiene una subcadena. Es sensible a mayúsculas y minúsculas.

Usando el operador -match:

$string = "Hello World"
$substring = "world"

if ($string.Contains($substring)) {
    "String contains the substring."
} else {
    "String does not contain the substring."
}

Producción :

String does not contain the substring.

El método .Contains() devuelve verdadero en caso de que la cadena contenga una subcadena; de lo contrario, devuelve falso.

.Contains() es muy eficiente para comprobaciones directas de subcadenas y es posiblemente el método más sencillo.

Para que este método no distinga entre mayúsculas y minúsculas, podemos convertir ambas cadenas a minúsculas usando el método toLower() y luego usar el método Contains(). .

Usando el operador -match:

$string = "Hello World"
$substring = "world"

if ($string.ToLower().Contains($substring.ToLower())) {
    "String contains the substring."
} else {
    "String does not contain the substring."
}

Producción :

String contains the substring.

4. Uso del operador -match (no distingue entre mayúsculas y minúsculas)

El operador -match de PowerShell utiliza expresiones regulares para la coincidencia de patrones, lo que lo convierte en una potente herramienta para comprobar subcadenas.

El operador -match en PowerShell no distingue entre mayúsculas y minúsculas de forma predeterminada, lo que lo hace adecuado para búsquedas donde las mayúsculas y minúsculas no importan.

Usando el operador -match:

$string = "Hello World"
$substring = "world"

if ($string -match $substring) {
    "String contains the substring (case-insensitive)."
} else {
    "String does not contain the substring."
}

Producción :

String contains the substring (case-insensitive).

5. Uso del operador -like (no distingue entre mayúsculas y minúsculas)

El operador similar se utiliza para la coincidencia de patrones comodín en PowerShell y se puede utilizar para comprobaciones de subcadenas.

Usando operador similar:

$string = "Hello World"
$pattern = "*world*"

if ($string -like $pattern) {
    "String contains the substring."
} else {
    "String does not contain the substring."
}

Producción :

String contains the substring.

-like $pattern: comprueba si $string coincide con el patrón comodín $pattern, donde * representa cualquier número de caracteres.

Si bien like es eficiente para patrones simples, su rendimiento puede variar con expresiones comodín más complejas.

El operador -like no distingue entre mayúsculas y minúsculas de forma predeterminada; utilice el operador -clike para una coincidencia que distinga entre mayúsculas y minúsculas.

6. Uso de los operadores -clike y -cmatch

Los operadores -clike y -cmatch son alternativas que distinguen entre mayúsculas y minúsculas de los operadores de me gusta y coincidencia, respectivamente.

Usando operador similar:

$string = "Hello World"
$pattern = "*world*"

if ($string -clike $pattern) {
    "String contains the substring."
} else {
    "String does not contain the substring."
}

Producción :

String does not contain the substring.

7. Conclusión

En este artículo, analizamos varias formas de comprobar si una cadena contiene una subcadena en PowerShell.

.Contains() es muy eficiente para comprobaciones directas de subcadenas y es posiblemente el método más sencillo.

El operador -match, aunque es más complejo, proporciona potentes capacidades de coincidencia de patrones. El operador -like ofrece un equilibrio entre simplicidad y flexibilidad con su coincidencia de patrones comodín.

Artículos relacionados