Символьные обозначения:
«
.» - любой символ, кроме переноса строки(\n);
«
\d» - цифровой символ, т.е. любая цифра от 0 до 9;
«
[0-9]» - цифровой диапазон - отличается от
\d тем, что в данном виде есть возможность указать не любой цифровой символ, а используя диапазоны, например
[1-3], который найдет только цифры 1, 2 и 3;
«
\D» - не цифровой символ. Т.е. все символы - буквенные и пробелы, кроме цифр;
«
\s» -все пробельные символы, которые могут включать в себя:
- пробел «
\ »;
- новая страница «
\f»;
- возврат каретки «
\r»;
- новая строка «
\n»;
- знак табуляции «
\t»;
- знак вертикальной табуляции «
\v»;
«
\S» - не пробельный символ, т.е. все буквы, цифры и знаки. Всё, что не перечислено выше, как пробельные символы.
«
\w» - буквенный или цифровой символ или знак подчёркивания.
«
\W» - любой символ, кроме буквенного или цифрового символа или знака подчёркивания.
Обозначения границ:
^ - начало строки;
$ - конец строки;
\b - граница слова;
\B - не граница слова.
К примеру, нам нужно проверить, содержит ли строка слово “Красный”, прописав в конструкторе «красный», мы можем получить так же и другие слова, в которые входит данное слово, такие как “прекрасный” и т.д. Что бы этого не происходило, необходимо прописать
\bкрасный\b - таким образом, все слова, которые могут быть похожи на искомое учитываться не будут.
Не граница слова, соответственно, работает наоборот. К примеру, мы знаем, что слово должно заканчиваться на “жили”, но само слово “жили” нам не нужно, тогда мы прописываем
\Bжили и получаем список слов с нужным нам окончанием - дорожили, выжили и т.д.
Обозначения количества совпадений (Квантификаторы):
{5} - ровно 5;
{1,5} - от 1 до 5 включительно;
{1,} - от 1 и более;
? - ноль или одно, так же соответствует
{0,1};
* - ноль или более, так же соответствует
{0,};
+ - Одно или более, так же соответствует
{1,}.
Квантификаторы устанавливаются после символов, число повторений которых необходимо задать.
Возьмём для примера точку, которая обозначает любой символ, и составим регулярное выражение, которому будет соответствовать любая последовательность из 4 символов. Результат будет выглядеть таким образом:
.{4}
Так можно указать, что внутри искомого текста имеется установленное или неограниченное число повторений установленных символов, т.е.:
с.{2}л - такое регулярное выражение найдёт такие слова, как стол, стул и т.д., но ему так же будет соответствовать строка, имеющая в середине пробелы, цифры и прочее.
Для того, чтобы указать, что внутри будут только буквы, необходимо прописать таким образом:
c[а-я]{2}л
Так же можно задать определённую последовательность или набор символов, которые должны учитываться. Для этого используются квадратные скобки, внутри которых прописываются диапазоны, или наборы символов.
Для указания диапазонов используется тире между значениями. Для перечисления, символы просто прописываются в строку без каких либо разделителей.
[a-zA-Z1-5абв] - данная последовательность обозначает любую английскую букву в верхнем и нижнем регистре, числа от 1 до 5 включительно, а так же русские буквы а, б и в.
Регулярное выражение будет иметь такой вид:
с[тоу]{2}л
Мы обозначаем, что после буквы “с” идут 2 любых символа, указанных в квадратных скобках и данная последовательность найдёт слова стол и стул, но ему так же будут соответствовать последовательности букв “суул”, “сутл” и прочие.
Модификаторы:
(?i) - включает нечувствительность выражения к регистру символов;
(?-i) - выключает нечувствительность выражения к регистру символов.
Используя данные модификаторы, мы можем указывать регулярному выражению, важен ли нам регистр символов при поиске совпадений. Отключив регистр в начале регулярного выражения, мы его выключаем для всех последующих совпадений в строке.
Пример использования:
Так же бывают случаи, когда в одном месте регистр для нас не важен, а в другом важен.
Пример использования
:
Данное регулярное выражение найдёт строку “Test, TEST”, т.к. у первой фразы включена нечувствительность к регистру и она находит все совпадения, но не найдёт “TEST, Test”, т.к. во второй фразе должно быть точное совпадение по регистру.
Модификаторы многострочного поиска:
(?m) - включает многострочный поиск
(?-m) - отключает многострочный поиск
Для того чтобы найти все строки, начинающиеся с не пробельного символа, подойдёт такое регулярное выражение:
(?m)^\S.*
Символы, которые должны экранироваться, для того, чтобы они учитывались в регулярном выражении как текст, а не как часть регулярного выражения (метасимволы):
^ [ . $ { *
( \ + ) | ?
При использовании данных символов в регулярном выражении, как части текста, они должны экранироваться знаком \.
К примеру, если в тексте у вас должен находиться знак вопроса, он обозначается как \?