Регулярное выражение как обозначить пробел или наоборот его отсутствие

  1. High levls 1.179
  2. High_levls 1.179
  3. Highlevls 1.179

Как обозначить через регулярку что это одно и тоже выражение: наличие пробела/отсутствие пробела либо же нижнее подчеркивание


Ответы (2 шт):

Автор решения: vsemozhebuty

Например, так:

const str = `
  High levls 1.179
  High_levls 1.179
  Highlevls 1.179
`;

const re = /High[ _]?levls/g;

console.log(str.match(re));

Или так:

const str = `
  High levls 1.179
  High_levls 1.179
  Highlevls 1.179
`;

const re = /High(?: |_)?levls/g;

console.log(str.match(re));

Или даже так:

const str = `
  High levls 1.179
  High_levls 1.179
  Highlevls 1.179
`;

const re = /High(?: |_|)levls/g;

console.log(str.match(re));

→ Ссылка
Автор решения: Sergey K.

В регулярных выражениях есть спецсимвол, который означает любой пробельный символ (включая таб).

\s

Аналогично, можно указать, чтобы это был любой непробельный символ

\S

Таким образов в вашем случае регулярное выражение будет следующим:

^High[\s_]?levls 1.179$

В квадратных скобках перечисляются возможные символы в данной возиции, а с помощью вопросительного знака указываем, что там может быть 1 из них или не быть вовсе. Символы ^ и $ означают начало и конец строки соответственно. То есть, если эта подстрока находится в другой строке, то их следует убрать.

High[\s_]?levls 1.179
→ Ссылка