Инструмент Pinery предназначен для генерации тестовых данных сложной структуры
на основе описаний в виде грамматик (к таким описаниям относятся, например,
BNF, регулярные выражения, DTD и т.п.).
Данный сервис позволяет генерировать тесты на основе регулярных выражений Perl
(их описания дступны как на
английском, так и на
русском языках).
В Pinery поддерживаются следующие конструкции регулярных выражений Perl:
| . | Любой символ |
| | | Конструкция выбора (альтернатива) |
| [...] | Символьный класс |
| [^...] | Инвертированный символьный класс |
| \t | Символ табуляции |
| \w | Символ слова: [a-zA-Z_] (цифры не включены) |
| \W | Символ не-слова: [^a-zA-Z0-9_] (цифры также не включены) |
| \s | Пробельный символ: [ \t] |
| \S | Инвертирование \s |
| \d | Цифра: [0-9]
| | \D | Инвертирование \d |
| ? | Опциональный элемент |
| * | Список длины >= 0 |
| + | Список длины >= 1 |
| {size} | Список длины = size |
| {min,} | Список длины >= min |
| {min,max} | Список длины >= min и <= max |
Как внутри, так и вне символьных классов поддерживается
экранирование (символом '\') служебных символов (таких как '[', '(', '\' и пр.).
Символы начала и конца строки (^ и $) распознаются, но игнорируются.
Обращаем внимание, что все модификаторы (кроме {size}) при генерации интерпретируются как минимальные (т.е. "не жадные").
Так, например, по регулярному выражению 'a*.' может быть сгенерирована строка 'aaa'.
В этом примере для генерации корректной строки следует модифицировать
выражение: 'a*[^a]'.
|