Перейти к содержимому


Проверка соответствия perl-совместимому регулярному выражению


Сообщений в теме: 2

#1 Гость_Жанна_*

  • Гости

Отправлено 24 Май 2024 - 14:29

В моем тесте в одном из вопросов требуется ввести несколько слов в качестве ответа. Для этого я создала регулярное выражение для автоматической проверки, в которой учла возможность постановки и отсутствия знаков препинания, а также возможные орфографические ошибки. При проверке при составлении теста все отлично, однако при прохождении теста всем пользователям не засчитывается правильный ответ, даже если он введен идеально. Те же ответы при копировании их в поле проверки при создании теста показывают "верно".

#2 Administrator

    Менеджер проекта

  • Администраторы
  • 1 439 сообщений

Отправлено 24 Май 2024 - 15:45

Здравствуйте, Жанна!

Скиньте Ваше регулярное выражение, нужно его посмотреть. В админке и вебе за проверку отвечают разные библиотеки, в вебе это делает встроенный механизм PHP, а в админке для возможности проверки из EXE это делает библиотека на C++. Вероятно на каких-то сложных ситуациях или если регулярка некорректно оформлена, то они могут давать разный результат. Поэтому, чтобы наверняка убедиться, лучше проверять регулярное выражение непосредственно в браузере. Нужно посмотреть есть ли какие-то некорректности в Вашем регулярном выражении.

В общем виде регулярное выражение на проверку нескольких вариантов ввода выглядит так:
^(a|b|c|d)$

Пример:
^(Иван Грозный|Грозный Иван|Грозный|Иван IV|Иоанн Васильевич)$

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

#3 Жанна

    Новичок

  • Пользователи
  • Pip
  • 1 сообщений

Отправлено 27 Май 2024 - 15:09

Я нашла ошибку и она оказалась не в моем регулярном выражении,точнее лишь частично в нем.
В вашем мануале на сайте и при установке программы указано,что регулярное выражение [а-Я] соответствует всем буквам алфавита в любом регистре. Именно оно вызывает сбои при проверке. Правильное выражение должно быть вида [А-я]. После этого изменения все заработало.




Ответить



  

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных