Инструмент 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]'.
|