Ответ кажется легким, но когда в 'Найти и заменить' применяется действительное регулярное выражение, оно просто не работает.
Документация https://apps.ankiweb.net/docs/manual.html#find-and-replace вообще не полезна и даже вводит в заблуждение, поскольку показывает пример, который не работает при применении.
Я могу только предположить, что это работало в некоторых из предыдущих версий, но было непреднамеренно сломано.
Давайте посмотрим на пару испытаний с окном «Найти и заменить». Я использую следующие настройки.
Наблюдение 1
Вход: <
Найти: <
Заменить:
Выход: <
Резюме: ничего не произошло Шаблон действителен, но он не сработал, как ожидалось.
Наблюдение 2
Вход: <
Найти: ^.
Заменить:
Выход: л;
Резюме: lt; напоминает HTML-сущность <
Теперь мы знаем, что движок регулярных выражений работает, но, очевидно, символы хранятся не так, как выглядят.
Anki хранит коллекции в файле collection.anki2, который является файлом базы данных sqlite. Давайте откроем его в браузере БД для SQLite и найдем запись с:
<span style="color: rgb(255, 255, 255)">One</span>
<span style="color: rgb(255, 255, 255)">Two</span>
<span style="color: rgb(255, 255, 255)">Three</span>
Столбец sfld:
<span style="color: rgb(255, 255, 255)">One<span><span style="color: rgb(255, 255, 255)">Two<span><span style="color: rgb(255, 255, 255)">Three<span>
Поля столбца:
<div><span style="color: rgb(255, 255, 255)">One<span></div><div><span style="color: rgb(255, 255, 255)">Two<span></div><div><span style="color: rgb(255, 255, 255)">Three<span></div><div><span style="color: rgb(255, 255, 255)">One<span></div><div><span style="color: rgb(255, 255, 255)">Two<span></div><div><span style="color: rgb(255, 255, 255)">Three<span></div>
Очевидно, регулярное выражение работает в столбце flds.
Давайте попробуем это регулярное выражение:
До изменения:
После изменения:
Сам шаблон может быть сокращен, но здесь я в основном сосредоточился на том, как заставить его работать вообще.