Страницы

Поиск по вопросам

среда, 19 декабря 2018 г.

Скрытие ответов в тестах

Здравствуйте, имеются готовые текстовые документы с тестовыми заданиями. Их содержимое:
Тема 1: Стихийные бедствия. Автор: Булат Фаттахов 10. Таким женским именем звали ураган, сильно повредивший Новый Орлеан. Ответ: Катрина. 20. "Дождь лил четыре года, одиннадцать месяцев и два дня" именно там. Ответ: в Макондо. 30. В 1883 году было извержение вулкана именно на этом острове. Ответ: Кракатау (Остров назывался так же как и вулкан). 40. Армянские города Гюмри и Ванадзор, сильно пострадавшие во время землетрясения 1988 года, в советское время носили такие названия. Ответ: Ленинакан и Кировокан. 50. Крупнейшее за всю историю человечества это стихийное бедствие произошло в 1875 году в США, а не в Египте двумя тысячами годами ранее. Ответ: Нашествие саранчи.
Тема 2: Города России. Автор: Булат Фаттахов 10. Это крупнейший город России после Москвы. Ответ: Санкт-Петербург. 20. Москва крупнейший город России, а Тольятти тоже крупнейший город в России среди таких. Ответ: Не являющийся столицей региона. 30. Это - крупнейший город самого большого острова России. Ответ: Южно-Сахалинск. 40. Именно в этом городе происходит действие сериала "Счастливы вместе". Ответ: Екатеринбург. 50. А именно этот город является самым западным городом России. Ответ: Балтийск.
И так на протяжении всех файлов. я не хочу сразу видеть то, что содержится после «Ответ». Нужно, чтобы ответы изначально были скрыты, становясь видимыми только тогда, когда пользователь выполняет какое-то действие, например, нажимает на «Развернуть ответ».
Методы не имеют значения. Да, можно заключить ответы под спойлеры — в HTML, например, проще всего в тэг — Ответ:

Текст ответа
(что он не поддерживается IE и Firefox, ничего страшного) . Но как выполнить множественные замены (учитывая, что ответы могут быть в несколько строк), например, при помощи программы Sublime Text, поддерживающей регулярные выражения PCRE?
Ответ: 'Текст ответа' 20.

Ответ:
'Текст ответа'
20.

Ответ: 'Текст ответа'
Тема

Ответ:
'Текст ответа'

Тема
Спасибо.


Ответ

Если в конце ответа обязательно цифра следующего вопроса или пустая строка, за которые можно зацепиться, то в Sublime можно так:
Find What: ^Ответ: ((.|
)+?)
([0-9
]) Replace With: Ответ:

\1

\3 (где \1 и \3 означают содержимое первой и третьей пар скобок в регулярке)
(Немного пояснений: (.|
)+ — берём один или больше любых символов, даже перенос строки, а +? — включаем ленивый режим работы вместо жадного, чтобы регулярка не считала одним ответом всё с начала первого ответа до конца последнего)

Комментариев нет:

Отправить комментарий