Всем привет!!!
Эта статейка моя шпаргалка по регулярным выражениям Linux.
- \ – с обратной косой черты начинаются буквенные спецсимволы, а также он используется если нужно использовать спецсимвол в виде какого-либо знака препинания;
- ^ – указывает на начало строки;
- $ – указывает на конец строки;
- * – указывает, что предыдущий символ может повторяться 0 или больше раз;
- + – указывает, что предыдущий символ должен повторится больше один или больше раз;
- ? – предыдущий символ может встречаться ноль или один раз;
- {n} – указывает сколько раз (n) нужно повторить предыдущий символ;
- {N,n} – предыдущий символ может повторяться от N до n раз;
- . – любой символ кроме перевода строки;
- [az] – любой символ, указанный в скобках;
- х|у – символ x или символ y;
- [^az] – любой символ, кроме тех, что указаны в скобках;
- [a-z] – любой символ из указанного диапазона;
- [^a-z] – любой символ, которого нет в диапазоне;
- \b – обозначает границу слова с пробелом;
- \B – обозначает что символ должен быть внутри слова, например, ux совпадет с uxb или tuxedo, но не совпадет с Linux;
- \d – означает, что символ – цифра;
- \D – нецифровой символ;
- \n – символ перевода строки;
- \s – один из символов пробела, пробел, табуляция и так далее;
- \S – любой символ кроме пробела;
- \t – символ табуляции;
- \v – символ вертикальной табуляции;
- \w – любой буквенный символ, включая подчеркивание;
- \W – любой буквенный символ, кроме подчеркивания;
- \uXXX – символ Unicdoe.
Важно отметить, что перед буквенными спецсимволами нужно использовать косую черту, чтобы указать, что дальше идет спецсимвол. Правильно и обратное, если вы хотите использовать спецсимвол, который применяется без косой черты в качестве обычного символа, то вам придется добавить косую черту.
Например, вы хотите найти в тексте строку 1+ 2=3. Если вы используете эту строку в качестве регулярного выражения, то ничего не найдете, потому что система интерпретирует плюс как спецсимвол, который сообщает, что предыдущая единица должна повториться один или больше раз. Поэтому его нужно экранировать: 1 \+ 2 = 3. Без экранирования наше регулярное выражение соответствовало бы только строке 11=3 или 111=3 и так далее. Перед равно черту ставить не нужно, потому что это не спецсимвол.