Спойлер

вторник, 21 июля 2015 г.

Список регулярных выражений и типовых контекстов использования

Собираем народный список регулярок (regex) на все случаи жизни, начну первым. У кого есть свои - закидывайте, добавлю в первый пост указав автора. Регулярки бывает могут работать не правильно, если что отписывайтесь в этой теме - найдём решение.



Поиск числа больше 0

(?<=(\D|^))[1-9]\d*
Вариант использования:
regex_width.png

в этом примере ищутся строго видимые элементы, невидимые же (имеющие ширину 0px) игнорируются, но иногда бывают осечки - когда сайт слоями накладывает элементы (встречается например в гугле).

Благодарим: CSS, Websteinlab
Разбор текста на предложения, кажется автора Websteinlab, немного мной доработано
Code (text):
[А-ЯA-Z].{15,}?(\.|\!|\?)(?=\ |\r|\n|$)
пример работы, на входе:


на выходе:
sent.png

Благодарим: Websteinlab
Поиск слова начинающегося с определённого текста (благодарим Websteinlab за доработку)
Code (text):
(?i)\bgo.*?(?=\W|\ |\r|\n|$)
найдёт в тексте все слова начинающиеся на go, например: goal, god, google

Благодарим: CSS, Websteinlab
Ищет число в диапазоне 400-699:
Code (text):
^([4-6][0-9][0-9])$
подробнее про диапазоне можно посмотреть здесь http://www.regular-expressions.info/numericranges.html

Поделился: CSS
Виртуальные колонки с разделителем ";"
Code (text):
(?<=(^|;)).*?(?=(;|$|\r\n))
на входе: name;pass;mail
на выходе: нужная вам "колонка" по номеру совпадения:
col.png
вариант использования: работаем со списком, разбираем по кускам колонки как в таблице

Поделился: CSS
Получить имя файла из пути windows:
Code (text):
([^\\]+$)
на входе:


на выходе: ZennoPoster.exe

Поделился: CSS
Поиск строк НЕ содержащих указанную (под)строку:
Code (text):
(?<=(^|\r\n))((?!(test)).)*(?=($|\r\n))
на входе:


на выходе:


Поделился: CSS
Взять все строки больше 18 символов
Code (text):
(?<=(\r\n|^)).{18,}(?=(\r\n|$))
Благодарим: alekwuy
Взять все строки до 18 символов
Code (text):
(?<=(\r\n|^)).{1,18}(?=(\r\n|$))
Благодарим: alekwuy
Поиск всех HTML тегов
Code (text):
<.*?>
Вариант использования - очистка текста от HTML кода

Благодарим: Trader1985
Поиск всех пустых строк в тексте
Code (text):
\n\r
Вариант использования - приведение текста в порядок

Благодарим: Trader1985
Поиск от трёх и более пустых строк
Code (text):
(?<=(\r\n){2})(\r\n){1,}
Вариант использования - приведение текста в порядок в случае когда нас устраивает 2 пустые строки

Благодарим: Trader1985
Email:
Code (text):
[\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\.A-Za-z0-9]{2,}
IP
Code (text):
(\d{1,3}\.){3}\d{1,3}
URL
Code (text):
(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])? - URL


http://zennolab.com/discussion/threads/reguljarnye-vyrazhenija-na-vse-sluchai-zhizni.20829/

Комментариев нет:

Отправить комментарий