Что означает \S в Regex? Пробел и пробельные метасимволы

Что означает \S в Regex? Пробел и пробельные метасимволы

В регулярных выражениях “S” - это метасимвол, обозначающий пробел.

Метасимвол строчной буквы “s” обозначает пробел, а заглавная буква “S” обозначает отсутствие пробела. Именно так работает шаблон для большинства метасимволов.

Например, маленькая буква “d” является метасимволом для цифры, а заглавная буква “D” - для нецифры.

В этой статье мы рассмотрим эти две вариации символа “S” в RegEx, их назначение и использование в движках RegEx и программировании.

Что мы рассмотрим

Чтобы метасимволы работали, их необходимо экранировать.

Причина в том, что если вы вводите метасимвол “S”, “s” или “D” только в движке RegEx или при написании RegEx на языке программирования, он будет интерпретирован как эта буква.

Поэтому, чтобы заставить метасимволы работать в RegEx, их нужно экранировать обратным слешем ().

В приведенном ниже примере я смог сопоставить символы пробела, потому что экранировал букву s:

В приведенном ниже примере я смог сопоставить числа, потому что экранировал d:Screenshot-2023-03-07-at-10.20.50

Что делает метасимвол "S"?

Как я уже упоминал ранее, мета символ “S” имеет две формы — строчная буква “s” и заглавная буква “S”.

Когда он находится в строчной букве, он соответствует всем символам пробела, таким как пробел, табуляция и возврат каретки.

А когда он находится в заглавной букве, он соответствует всем символам, не являющимся пробелами, таким как цифры, символы и буквы.

Каждый из пробельных символов также имеет свои мета символы:

  • \t для табуляции
  • \r для возврата каретки
  • \n для новой строки

Примеры использования метасимвола "S"

Вы можете сопоставить все символы, не являющиеся пробелами, со скрытой заглавной буквой “S”:

Вы можете сопоставить все пробельные символы со строчной буквой “s”:Screenshot-2023-03-07-at-10.18.37-1

Метасимволы \s и \S прекрасно работают в любом языке, который поддерживает RegEx.

Вот пример на JavaScript:

let regex1 = /\S/g;
let regex2 = /\s/g;

let str1 = 'Allofthesearenonsspacecharacters';
let str2 = `spacebar 
tab 
newLine

`;

console.log(regex1.test(str1)); //true
console.log(regex2.test(str2)); // true

Заключение

В этой статье вы узнали, что означает и делает символ “S” в RegEx.

Мы рассмотрели, как он работает (для его работы требуется экранирование), его две формы, а также то, как он работает в механизмах RegEx и JavaScript.

Спасибо за прочтение. Счастливого кодирования!