Зашедших прошу потестировать этот апплет. Первое текстовое поле предназначено для ввода описания шаблона для проверки входной строки. Второе поле - для ввода строки, которая будет проверяться. А третье - для вывода результата проверки.

Ниже приведено определение языка для описания шаблона…

Каждая строка на таком языке будет иметь вид:

<идентификатор> = <регулярное выражение>

Регулярными считаются следующие выражения:

  1. строка символов, заключенная в апострофы (так как определено в Паскале, включая двойные апострофы);
  2. A+B (конкатенация), где A и B – регулярные выражения;
  3. A|B (выбор), где A и B – регулярные выражения;
  4. (A) (скобки могут менять порядок рассмотрения выражения), где A – регулярное выражение;
  5. {A} (итерация), где A – регулярное выражение.

Последний идентификатор задает множество допустимых ответов. Ранее введенные идентификаторы могут использоваться при определении текущего.

Например, если требуется считать правильным ответ, состоящий из числа 32, перед и после которого может следовать произвольное число пробелов, это можно сделать так:

Goal = {‘ ’}+‘32’+{‘ ’}

Другой пример:

Digit = (‘0’|‘1’|‘2’|‘3’|‘4’|‘5’|‘6’|‘7’|‘8’|‘9’)
Integer = (‘-’|‘+’|‘’)+Digit+{Digit}
Goal = {‘ ’}+Integer+{‘ ’}


Leave your message at
Hosted by uCoz