Всем добрый день!
Все никак не могу разобраться с модулем, реализующего регулярные выражения на русском языке в мудле а очень нужен
может ли кто-нибудь помочь реализовать его не за просто так?
Всем добрый день!
Все никак не могу разобраться с модулем, реализующего регулярные выражения на русском языке в мудле а очень нужен
может ли кто-нибудь помочь реализовать его не за просто так?
Вы о чем ?
Ссылку на модуль дайте. И какой версией modle пользуетесь.
в том то и косяк, что мне надо самой реализовать этот модуль... но что-то кажется что это не по силам мне
Требуется приличное знание php и умение пользоваться поиском в гугле.
php поддерживает регуляные выражения для любого языка, главное не забывать что в moodle все в utf-8.
ну вот я ввожу например, РВ на англ...популярный пример, животное из трех букв cat, rat
работает
ввожу такое же регулярное выражение, только меняю среднюю букву на русскую о , чтоб подходили ответы дог и кот
и не работает..принимает за неверный ответ,.. что, где может надо прописать, донастроить, чтобы работало?
Ann, давайте по порядку. Вы говорите 1. Версию moodle. 2. Что у вас там за модуль, какой версии и где вы его взяли. 3. Что вы вводите во все поля формы при создании вопроса этого типа. 4. Regexp и слова, на которые оно срабатывает/не срабатывают по-английски. 5. Пример текста вопроса, regexp и ответы, на котором должно срабатывать по-русски, но не срабатывает.
Без этого всего невозможно повторить ваши действия и, как следствие, написать баг-репорт разработчику, который тоже захочет повторить ваши действия.
Я вот, к несчастью, не знаю наизусть примеров популярных английских регулярных выражений )))
Уже просили - покажите модуль/тип_вопроса, в котором вы это хотите реализовать. Иначе это разговор "ни о чём".
На заметку: Для использования кириллицы в регулярках в функции РНР preg_match нужно использовать модификатор /u
Пример: как известно, в модуле "Лекция" есть страница с вопросом "Краткий ответ", но не работает кириллица. Попробуйте найти функцию проверки вопросов public function check_answer() (файл moodle\mod\lesson\pagetypes\shortanswer.php, у меня версия Мудл 2.5) и вставить модификатор /u в строке 104 (в своей версии Мудл ищите эту строку, она может быть в другом месте):
if (preg_match('/^'.$expectedanswer.'$/u'.$ignorecase,$studentanswer)) {
Как результат, работает вопрос "Какие цвета на французском флаге?", в кот. преп-ль в качестве верного ответа указал выражение: "синий, белый(,| и) красный" с галкой у опции "Использовать регулярные выражения". Верными считаются ответы: "синий, белый и красный" И "синий, белый, красный"
ЗЫ: может ещё где-то в этой функции нужно "пошаманить", проставив нужный модификатор.
Обратите внимание на документацию, внизу есть ссылка на тип вопроса с регулярками от русского автора (у него же должна работать кириллица в регулярках?)
Версия 2.3.
Модуль "лекция", вопрос типа "краткий ответ"
1. ввожу в поле ответа на англ: [bcr]at
Ответы: bat cat и rat верные
2. Ввожу в поле ответа [рт]ок
Ответы : рок и ток...Ни один ответ не принимает
в чем может быть проблема не понимаю
Там таких строк несколько.
И в документации есть неточности. Символ ^ прибивается ко всем RE проме ответа с "++" 8-/
Там таких строк несколько.
Да, но нет необходимости вносить правки там, где проверяется правильность ответа БЕЗ использования регулярных выражений.
Поэтому, исправления в условиях if (!$useregexp) с комментарием //we are using 'normal analysis' (мы используем "обычный анализ") - лишние.
Я бы исправил все 6, т.к. без галочки RE все равно можно использовать RE.
Я бы исправил все 6, т.к. без галочки RE все равно можно использовать RE.
Не спорю. Очень удобно, когда лень галочки ставить )))))))))
Вадим, спасибо огромное!!!!!!!!!!!
Работает Кириллица)))
поставила только в одной строчке, как Вы и сказали...В другие ставить даже не пришлось)
Подскажите пожалуйста, а что это за модификатор /U?
Хочется просто понять в чем дело было
что это за модификатор /U?
u (PCRE_UTF8)
Гугл в помощь: http://www.php.net/manual/ru/reference.pcre.pattern.modifiers.php
Так и не должна работать.
Пробуйте кот и рот.
а что, у вас сработало ?