Подтвердить что ты не робот

Каковы различия между шаблоном стиля глобуса и регулярным выражением?

Я столкнулся с ситуациями, когда поддерживаются только шаблоны в стиле глобуса, и полной поддержки регулярных выражений нет, например, ключи redis. Я хотел бы узнать различие между ними. Также мне интересно, реализует ли алгоритм соответствия регулярному выражению более сложный по сравнению с шаблоном стиля glob, который некоторые программные средства не поддерживают регулярное выражение вообще?

4b9b3361

Ответ 1

Традиционные групповые символы поддерживают очень узкий набор метасимволов - * - это "что угодно", ? - произвольный одиночный символ; Оболочка Bourne также поддерживает [a-z123] для одного символа из набора альтернатив и [!x-z789] для любого, кроме перечисленных.

Очевидно, что Regex гораздо богаче, поддерживает повторения и (в ERE) чередование и определенное количество повторений. Регулярное выражение в стиле Perl расширяет формализм до такой степени, что было написано несколько книг, и будет еще больше.

Базовое регулярное выражение не намного сложнее в программировании, чем глобальные подстановочные знаки, и в наши дни компетентный программист в любом случае будет ссылаться на существующую библиотеку.

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

Ответ 2

Регулярные выражения используются в командах/функциях для сопоставления шаблонов в тексте. Например, в параметре шаблона grep или в языках программирования.

Globbing используется оболочками для сопоставления имен файлов и каталогов с помощью подстановочных знаков. Возможности globbing зависят от оболочки. Bash, например, поддерживает такие подстановочные знаки, как:

Более подробную информацию можно найти здесь