Подробности: блоки представляют собой ежедневные заметки и каждый день в полночь добавляется новый «блок на день». Например, сегодня к файлу было бы добавлено следующее (оно будет в самом верху файла):
Код: Выделить всё
# ⬆ 2025-01-10 ⬆ Friday
---
Код: Выделить всё
# ⬆ 2025-01-11 ⬆ Saturday
---
# ⬆ 2025-01-10 ⬆ Friday
---
Для этого я использовал следующее регулярное выражение в Python (
Код: Выделить всё
dailyКод: Выделить всё
daily: str = re.sub(
r"(#\ ⬆\ \d\d\d\d\-\d\d\-\d\d\ ⬆.*\n\-\-\-)(\s*#\ ⬆\ \d\d\d\d\-\d\d\-\d\d\ ⬆.*\n\-\-\-)",
r"\1",
daily,
)
Вот запись Regex101, которая показывает мою проблему: удаляется только каждый второй «пустой блок».
Это связано с тем, что в моем определении мне нужно заранее привязаться к блоку, и этот блок больше не проверяется на пустоту (поскольку он уже сопоставлен).
Я рассмотрю запуск регулярное выражение дважды (нет проблем с производительностью), но я был интересно,
- могу ли я определить свой «пустой блок», не обращаясь к блоку раньше
- или я могу использовать «временная привязка», где предыдущий блок все еще находится в игре, поскольку регулярное выражение анализирует строку
- или что-то еще.
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-by-regex
Мобильная версия