Очень часто при обработке баз данных или большого количества текстовых файлов складывается ситуация, когда обычной заменой исправить текст не получается или слишком трудозатратно. Обычно эти сложности связаны с тем, что в тексте есть какие-либо переменные, которые необходимо сохранить, например ссылки на изображения и т.д. Тут и приходят на помощь регулярные выражения, которые позволяют осуществить поиск и замену не в лоб, а по определённому шаблону тем самым упростив обработку огромного файла до одного клика.
Если с тексте встречаются специальные символы [ ] \ / ^ $ . | ? * + ( ) { }, то в строке их необходимо экранировать \ обратным слэшем. Например текст <img src=\"http://wetweb.ru/\"> при работе с регулярными выражениями в строке поиска должен выглядить так <img src=\\"http:\/\/wetweb.ru\/\\">
. «точка» представляет один любой символ;
^ начало строки;
$ конец строки;
^$ пустая строка (начало и конец, между которыми пусто);
* «повторитель». Означает, что символ перед ним может повторяться 0 или более раз;
.* Абсолютно любой набор символов. Например, условие <span> .*</span> найдет все что между тегами <span> </span>;
+ «повторитель». Означает, что символ перед ним может повторяться 1 или более раз;
.+ любая не пустая строка;
\s пробел;
\S не пробел;
\w буква, цифра или подчёркивание _;
\d любая цифра;
\D любой символ, но не цифра;
\b граница слова;
\B не граница слова;
\bмок ищет набор символов «мок», только в начале слов, то есть в слове "мокро" будет найдено, а в слове "замок" нет;
мок\b ищет набор символов «мок», только в конце слов, то есть в слове "мокро" не будет найдено, а в слове "замок" найдёт;
\Bмок\B Ищет набор символов «мок», не в начале ни в конце слов, то есть не в слове "мокро" ни в слове "замок" не найдёт, а вот в слове "намокни" будет найдено;
[0-9] любая цифра;
[a-z] любая буква от a до z (весь латинский набор символов) в нижнем регистре;
[A-Z] любая буква от A до Z в ВЕРХНЕМ регистре;
[a-zA-Z] или [a-Z] любая буква от a до z в ЛюБоМ регистре;
(^.*$) Любой текст между началом и концом строки;
([0-9][0-9]*.) ищет любые цифры, в данном случае двухзначные цифры;
\n ищет символ новой строки;
\r ищет пустые строки содержащий символы «перевод каретки» ;
^$ ищет пустые строки
\n\r ищет пустые строки содержащий символы — символ новой строки и «перевод каретки»
\s ищет класс пробельных символов. К пробельным символам относятся пробел, символ табуляции, возврат каретки, символ новой строки и символ перевода страницы. То же самое, что и [ \t,\r,\n,\f];
\S Ищет класс не пробельных символов. То же самое, что и [^ \t, \r,\n,\f];
^\s*$ Ищет пустые строки содержащие пробел;
^[ ]*$ Ищет пустые строки содержащие пробел;
^Слово Ищет слово «Слово» в начале строки;
Слово$ Ищет слово «Слово» в конце строки;
| — Регулярное выражение, «или». Будет искать то что слева и справа.