Регулярное выражение для сопоставления уникальных подстрок
Вопрос
Вот базовая техника регулярных выражений, которую мне так и не удалось запомнить.Допустим, я использую довольно общую реализацию регулярных выражений (например, grep или grep -E).Если бы я должен был составить список файлов и сопоставить все, которые заканчиваются на любой .sty
или .cls
, - как бы я это сделал?
Решение
ls | grep -E "\.(sty|cls)$"
\.
соответствует буквально a"."
- необузданный.
соответствует любому символу(sty|cls)
- совпадение"sty"
или"cls"
- the | являетсяor
и скобки ограничивают выражение.$
заставляет совпадение находиться в конце строки
Обратите внимание, вы хотите grep -E
или egrep
, не grep -e
поскольку это другой вариант для списков шаблонов.
Другие советы
egrep "\.sty$|\.cls<*>quot;
Это регулярное выражение:
\. (STY | ЦБС) \ г
будет соответствовать любой строке, заканчивающейся на .sty или .cls
<Сильный> EDIT:
для grep \ z следует заменить на $ т.е.
. \ (Свинарник | ЦБС) $
как jelovirt предложено.
Не связан с StackOverflow