В регулярных выражениях “S” - это метасимвол, обозначающий пробел.
Метасимвол строчной буквы “s” обозначает пробел, а заглавная буква “S” обозначает отсутствие пробела. Именно так работает шаблон для большинства метасимволов.
Например, маленькая буква “d” является метасимволом для цифры, а заглавная буква “D” - для нецифры.
В этой статье мы рассмотрим эти две вариации символа “S” в RegEx, их назначение и использование в движках RegEx и программировании.
Оглавление
Что мы рассмотрим
Чтобы метасимволы работали, их необходимо экранировать.
Причина в том, что если вы вводите метасимвол “S”, “s” или “D” только в движке RegEx или при написании RegEx на языке программирования, он будет интерпретирован как эта буква.
Поэтому, чтобы заставить метасимволы работать в RegEx, их нужно экранировать обратным слешем ().
В приведенном ниже примере я смог сопоставить символы пробела, потому что экранировал букву s:
В приведенном ниже примере я смог сопоставить числа, потому что экранировал d:
Что делает метасимвол "S"?
Как я уже упоминал ранее, мета символ “S” имеет две формы — строчная буква “s” и заглавная буква “S”.
Когда он находится в строчной букве, он соответствует всем символам пробела, таким как пробел, табуляция и возврат каретки.
А когда он находится в заглавной букве, он соответствует всем символам, не являющимся пробелами, таким как цифры, символы и буквы.
Каждый из пробельных символов также имеет свои мета символы:
- \t для табуляции
- \r для возврата каретки
- \n для новой строки
Примеры использования метасимвола "S"
Вы можете сопоставить все символы, не являющиеся пробелами, со скрытой заглавной буквой “S”:
Вы можете сопоставить все пробельные символы со строчной буквой “s”:
Метасимволы \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.
Спасибо за прочтение. Счастливого кодирования!