⊗jsSpREChS 103 of 281 menu

Character sets in regular expressions in JavaScript

The \d and \w character groups are not very flexible. Even such a simple task as to find all letters but not digits cannot be solved with them. For such problems, square brackets should be used, representing the operation 'OR'.

Square brackets replace one character, any of the ones listed inside. For example, like this: /x[abc]x/ - we say that the letters 'x' should be at the edges, and one character inside: or 'a', or 'b', or 'c'.

You can write repetition operators after square brackets. For example, like this: /x[abc]+x/ - we say that there can be any number of 'a', 'b' and 'c' characters inside x's - in any combination.

You can not only enumerate characters, but create groups of characters by writing a hyphen between two characters. For example, like this: [a-d] - we get all characters from 'a' to 'd'.

Let's look at examples.

Exampe

In this example, the search pattern looks like this: any letter from 'a' to 'z' between x's:

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

As a result, the following will be written to the variable:

'! ! ! x@x'

Exampe

In this example, the search pattern looks like this: any letter from 'a' to 'k' between x's:

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

As a result, the following will be written to the variable:

'! ! xmx x@x'

Exampe

In this example, the search pattern looks like this: any letter from 'A' to 'Z' between x's:

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

As a result, the following will be written to the variable:

'xax ! xcx x@x'

Exampe

In this example, the search pattern looks like this: any digit from 0 to 9 between x's:

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

As a result, the following will be written to the variable:

'xax ! ! ! x@x'

Exampe

In this example, the search pattern looks like this: any digit from 3 to 7 between x's:

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

As a result, the following will be written to the variable:

'xax x1x ! ! x@x'

Exampe

In this example, the search pattern looks like this: any letter from 'a' to 'z' or a number from 1 to 9 between x's:

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

As a result, the following will be written to the variable:

'! ! ! ! x@x'

Exampe

In this example, the search pattern looks like this: any letter from 'a' to 'z' or a letter from 'A' to 'Z' between x's:

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

As a result, the following will be written to the variable:

'! ! ! x5x x@x'

Exampe

In this example, the search pattern looks like this: any letter from 'a' to 'z' or digits 1, 2 between x's:

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

As a result, the following will be written to the variable:

'! ! ! ! x3x'

Exampe

In this example, the search pattern looks like this: letters from 'a' to 'z' in the amount of 1 or more between x's:

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

As a result, the following will be written to the variable:

'xx ! ! ! x123x xa3x'

Exampe

Let's make it so that the number of letters can be zero:

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

As a result, the following will be written to the variable:

'! ! ! ! x123x xa3x'

Practical tasks

Given a string:

let str = 'aba aea aca aza axa';

Write a regex that matches the following pattern: the letters 'a' are at the edges, and the letter 'b', 'e' or 'x' is between them.

Given a string:

let str = 'a1a a3a a7a a9a aba';

Write a regex that matches the following pattern: the letters 'a' are at the edges, and a digit from 3 to 6 is between them.

Given a string:

let str = 'aba aea afa aha aga';

Write a regex that matches the following pattern: the letters 'a' are at the edges, and the letter from 'a' to 'g' is between them.

Given a string:

let str = 'aba aea afa aha aga';

Write a regex that matches the following pattern: the letters 'a' are at the edges, and the letter from 'a' to 'f' and from 'j' to 'z' is between them.

Given a string:

let str = 'aAa aea aEa aJa a3a';

Write a regex that matches the following pattern: the letters 'a' are at the edges, and the letter from 'a' to 'f' and from 'A' to 'D' is between them.

Given a string:

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

Write a regex that matches the following pattern: the letters 'a' are at the edges, and small Latin letters are between them, without affecting the others.

Given a string:

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

Write a regex that matches the following pattern: the letters 'a' are at the edges, and small and large Latin letters are between them, without affecting the others.

Given a string:

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

Write a regular expression that matches the following pattern: the letters 'a' are at the edges, and small Latin letters and digits are between them, without affecting the others.

enru