FAQ по REGEX.txt

Печать
Автор Administrator   
REGEX

Набор шаблонов для анализа и выборки алгоритмом нужных типов файлов

структура файла regex.txt


1. Анализ побайтно

Пример файла wmv http://en.wikipedia.org/wiki/Windows_Media_Video
открываем в TotalСommander или FAR файл по F3 в HEX режиме и смотрим заголовок файла
http://img411.imageshack.us/img411/613/wmvhexdx4.gif

Код:
в виде символов
80C000 b ^0&			wmv;VIDEO;ALL
или побайтно в 16-ричном формате 
80C000 b \x30\x26\xB2\x75\x8E\x66\xCF\x11\xA6\xD9\x00\xAA	wmv;VIDEO;ALL
^    ^                             ^                           ^     ^
1    2                             3                           4     5
1 - цвет файла в RGB (80C000)
2 - символ b - определение будет побайтно
3 - характерный кусок заголовка файла (сигнатура). Могут быть не первыми байтами файла, но из потока гарантированно загружается только 128 байт. Можно писать как в виде символов так и побайтно в HEX формате разделяя символом \, предпочтительнее и более точный - последний. Прежде чем добавить собственный формат, проанализируйте несколько файлов, найдите в заголовке набор одинаковых байт (читай символов)...
4 - расширение файла.
5 - группы в которые входит файл (перечислять через символ ";")

2. Анализ на MIME-тип (менее эффективен)

символ t - проверка на MIME-тип, что в некоторой степени имеет отношение к расширению файла, хотя абсолютно жесткой связи тут нет (для одного расширения часто существует несколько MIME-типов, и наоборот один MIME-тип может охватывать сразу несколько файловых расширений).

Цитата:
80C000 t ^video/x-ms-wmv wmv;VIDEO;ALL
80C000 t ^video/x-ms-asf wmv;VIDEO;ALL
80C000 t ^video/wmv wmv;VIDEO;ALL
Подробнее о MIME типах
http://html.manual.ru/book/info/mimetypes.php
http://www.chem.msu.su/rus/wwwbook/mime.html
http://ru.wikipedia.org/wiki/MIME

Более сложные конструкции

в zip, rar, ace, 7z и uha архивах ищит следующие расширения типов файлов, при условии что имена файлов в архиве не шифрованы...
все архивы получат расширение rar, при открытии архивов в TotalCommander тип архива автоматически определяется по заголовку, проблем с открытием и распаковкой быть не должно...
Код:
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(jpg|jpeg) jpg.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.mp3 mp3.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.mp4 mp4.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.ogg ogg.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.ape ape.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.flac flac.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.wmv wmv.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.avi avi.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.divx divx.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(mpg|mpeg) mpg.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.vob vob.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.mov mov.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.iso iso.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.mdf mdf.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.nrg nrg.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.pdf pdf.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.djvu djvu.rar;All;FAV
можно сгруппировать таким образом

Код:
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(jpeg|jpg) PHOTO.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(mp3|ogg|wma|ape|flac) MUSIC.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(mp4|wmv|avi|divx|mpg|mpeg|mov|vob) VIDEO.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(iso|mdf|nrg) IMG.rar;All;FAV
008000 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*\.(pdf|djvu) BOOK.rar;All;FAV
Выборка mp3 по жанрам либо по исполнителю, применимо только к mp3 с ID3v2 так как ID3v1 хранит тэг в конце файла
виды жанров музыки можно посмотреть в winamp, открыв свойства тэга в любом mp3 файле


Код:
00C000 b ^(ID3|TCON|TPE1).*(?i)(trance|house|80*s|90*s|Jungle|Electronic|Disco|Metal|Death|Grindcore|Doom|Ambient|Folk|Viking|Beat|Gothic|Industrial|Alternative|Brutal) rule.mp3;FAV_mp3
Блокирование файлов

Код:
404040 b ^idska32		BLOCK   #по заголовку
404040 b ^PSTREAM		BLOCK
404040 b ^.*(?i)(audiobook|trance|arab|anime)	BLOCK   #по ключевым словам в теле файла (архива)
Выборка по ключевым словам в архивах, опять же при условии что имена файлов в архиве не шифрованы

Код:
8000C0 b ^(PK|Rar!|.......\*\*ACE|7z|UHA).*(?i)(CLIP|Comedy|hdtv|VIDEO_TS|vista|netz|epidem|warez|dvdrip) word.rar;ALL
Выборка фотографий с тэгом Exif
Код:
FFB0A3 b ^\xFF\xD8.*(?i)(PENTAX|OLYMPUS|Canon|CASIO|NIKON|Panasonic|KONICA|NOKIA|SAMSUNG|Siemens|SONY) FOTO.jpg;ALL
Документации по регулярным выражениям в интернете полно, ищите по словам "regex" или "regular expressions"
Например http://ru.wikipedia.org/wiki/Регулярные_выражения

Далее описаны несколько элементов, часто употребляемых в регулярных выражениях.

Применяемые для задания соответствия символу:
. - соответствует любому одиночному символу (например выражение ".arry" может соотвествовать и Larry и Barry и др);
\d - соответствует любой цифре (например выражение "\d\d" соотвествует любому числу от 0 до 99);
[набор_символов] - задает соответствие любому символу из указанного набора_символов (например "[a-f0-9]");
[^набор_символов] - задает соответствие любому символу, за исключением тех, что входят в указанный набор_символов (например "[^k-z]" соответствует любому символу, кроме входящих в диапазон от k до z);
\xn - где n - шестнадцатеричное число, обязательно состоящее из двух цифр. Соответствует символу с шестнадцатеричным кодом n (например, \x41 эквивалентно "A");

Специальные символы, которые позволяют задавать соответствие не одиночному символу, а некоторому количеству символов:
* - соответствует повторению предшествующего символа ноль и более раз. Например, «go*gle» соответствует ggle, gogle, google, gooooooogle и др;
? - соответствует повторению предшествующего символа ноль или один раз. Например, «colou?r» соответствует и color, и colour.
+ - соответствует повторению предшествующего символа один и более раз. Например, «to+» соответствует to и too, но не tooo и не t.
{n} - где n это положительное целое число. Соответствует точно n-ному количеству повторений. Например, "o{2}" не соответствует 'o' в "Bob", но соответствует 2-м символам 'o' в "сool".
{n,m} - где n и m это положительные целые числа, причем n < m. Соответствует хотя бы n-ому, но не более чем m-ому числу повторений. Например, "o{1,3}" соответствует первым трем 'o' в "fooooood".

Применяются также спецсимволы, указывающие на допустимое положение найденного соответствия:
^ - указывает что найденный текст должен быть в начале строки;
$ - указывает что найденный текст должен быть в конце строки.

Другие полезные символы и комбинации:
Символ вариации '|' используют для того чтобы допустить выбор между двумя и более вариантами. Например, "PK|Rar!" соответствует "PK" или "Rar!";
(?i) - указывает что последующие конструкции регулярного выражения будут нечувствительны к регистру букв.

 

 
« Настройка программы skynet для TehnoTrend Budget S-1401   FAQ по RULES.txt »

Поиск

Пользовательского поиска

Ещё рекламко )

Не забывай нас!!

Добавить нас в Избранное Ну или просто (CTRL+D)

В сервисы закладок навеке :)

^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ || || || || || || || || || || || || || || || || Помоги сайту!! Добавь страничку в любую соцзакладку.

Рекламко!

Наша кнопка

Поставь к себе на сайт нашу кнопку! 

Спутниковая рыбалка (граббинг)

 

 

 Код кнопки:  <a href="http://grabing.info/"><img src="http://grabing.info/images/stories/knopka.gif" alt="Спутниковая рыбалка (граббинг)" width="88" height="31" border="0"></a>

 

Нас посчитали


[+]
  • Narrow screen resolution
  • Wide screen resolution
  • Auto width resolution
  • Increase font size
  • Decrease font size
  • Default font size
  • default color
  • blue color
  • green color