Conjuntos de caracteres en expresiones regulares de JavaScript

Los grupos de caracteres \d y \w no son muy flexibles. Incluso una tarea tan simple como encontrar todas las letras, pero no los dígitos - no puede ser resuelta por ellos. Para tales tareas se deben usar corchetes, que representan una operación 'o'.

Los corchetes reemplazan un carácter, cualquiera de los listados dentro. Por ejemplo, así: /x[abc]x/ - estamos diciendo que en los extremos deben estar las letras x, y dentro - un carácter: o 'a', o 'b', o 'c'.

Después de los corchetes se pueden escribir operadores de repetición. Por ejemplo, así: /x[abc]+x/ - estamos diciendo que dentro de las x puede haber cualquier cantidad de caracteres 'a', 'b' y 'c' - en cualquier combinación.

No solo se pueden enumerar caracteres, sino crear grupos de caracteres, escribiendo entre dos caracteres un guion. Por ejemplo, así: [a-d] - obtenemos todos los caracteres desde 'a' hasta 'd'.

Veamos algunos ejemplos.

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: entre xes cualquier letra desde 'a' hasta 'z':

javascriptlet str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'! ! ! x@x'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: entre xes cualquier letra desde 'a' hasta 'k':

javascriptlet str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'! ! xmx x@x'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: entre xes cualquier letra desde 'A' hasta 'Z':

javascriptlet str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'xax ! xcx x@x'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: entre xes cualquier dígito desde 0 hasta 9:

javascriptlet str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'xax ! ! ! x@x'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: entre xes cualquier dígito desde 3 hasta 7:

javascriptlet str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'xax x1x ! ! x@x'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: entre xes cualquier letra desde 'a' hasta 'z' o dígito desde 1 hasta 9:

javascriptlet str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'! ! ! ! x@x'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: entre xes cualquier letra desde 'a' hasta 'z' o letra desde 'A' hasta 'Z':

javascriptlet str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'! ! ! x5x x@x'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: entre xes cualquier letra desde 'a' hasta 'z' o los dígitos 1, 2:

javascriptlet str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'! ! ! ! x3x'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: entre xes letras desde 'a' hasta 'z' en cantidad desde 1 y más:

javascriptlet str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'xx ! ! ! x123x xa3x'

Ejemplo

Hagamos que la cantidad de letras pueda ser cero:

javascriptlet str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');

Como resultado, en la variable se guardará lo siguiente:

javascript'! ! ! ! x123x xa3x'

Tareas prácticas

Задание 1

Dada la cadena:

javascriptlet str = 'aba aea aca aza axa';

Escribe una expresión regular que encuentre según el siguiente patrón: en los extremos hay letras 'a', y entre ellas - la letra 'b', 'e' o 'x'.

Задание 2

Dada la cadena:

javascriptlet str = 'a1a a3a a7a a9a aba';

Escribe una expresión regular que encuentre según el siguiente patrón: en los extremos hay letras 'a', y entre ellas - un dígito desde 3-s hasta 6-tos.

Задание 3

Dada la cadena:

javascriptlet str = 'aba aea afa aha aga';

Escribe una expresión regular que encuentre según el siguiente patrón: en los extremos hay letras 'a', y entre ellas - una letra desde a hasta g.

Задание 4

Dada la cadena:

javascriptlet str = 'aba aea afa aha aga';

Escribe una expresión regular que encuentre según el siguiente patrón: en los extremos hay letras 'a', y entre ellas - una letra desde a hasta f y desde j hasta z.

Задание 5

Dada la cadena:

javascriptlet str = 'aAa aea aEa aJa a3a';

Escribe una expresión regular que encuentre según el siguiente patrón: en los extremos hay letras 'a', y entre ellas - una letra desde a hasta f y desde A hasta D.

Задание 6

Dada la cadena:

javascriptlet str = 'aAXa aeffa aGha aza ax23a a3sSa';

Escribe una expresión regular que encuentre según el siguiente patrón: en los extremos hay letras 'a', y entre ellas - letras latinas minúsculas, sin afectar a las demás.

Задание 7

Dada la cadena:

javascriptlet str = 'aAXa aeffa aGha aza ax23a a3sSa';

Escribe una expresión regular que encuentre según el siguiente patrón: en los extremos hay letras 'a', y entre ellas - letras latinas minúsculas y mayúsculas, sin afectar a las demás.

Задание 8

Dada la cadena:

javascriptlet str = 'aAXa aeffa aGha aza ax23a a3sSa';

Escribe una expresión regular que encuentre según el siguiente patrón: en los extremos hay letras 'a', y entre ellas - letras latinas minúsculas y dígitos, sin afectar a las demás.