#python-3.x #regex #github-actions
#python-3.x #регулярное выражение #github-действия
Вопрос:
Я запускаю скрипт Python в действии GitHub, который выполняется на компьютере Ubuntu 18.04.
Скрипт разбивает файл Markdown на несколько файлов markdown на основе совпадающих заголовков первого уровня (т.Е. # Header {header-anchor}
), Поэтому я использую
for match in re.finditer("^#s(.*?)($|{)", file_contents, flags=re.M)
чтобы получить местоположение каждого заголовка.
Все это отлично работает на моем локальном компьютере под управлением OSX 10.15.4 с Python 3.8.7. Регулярное выражение соответствует заголовкам и соответствующим образом разбивает файл.
Однако на компьютере Github Action Ubuntu (на котором я установил Python 3.8 в соответствии с https://github.com/actions/setup-python
- name: Python Setup
uses: actions/setup-python@v2
with:
python-version: '3.8'
Регулярное выражение не возвращает совпадений и не разделяет файл. Я не уверен, почему, поскольку я ожидаю re
, что библиотека будет работать независимо от ОС.
Комментарии:
1. Обычно при регулярном выражении имеет значение, является ли одна ОС Windows, а другая Mac / * nix, поскольку в игру вступает разница в переносе строки. В вашем случае неясно, что происходит, и без воспроизводимого примера будет сложно помочь.
2. Вот пример файла markdown: github.com/aparande/BerkeleyNotes/blob/gitbook/ee128.md , а полный сценарий можно найти по адресу github.com/aparande/BerkeleyNotes/blob/gitbook/create_book.py . Достаточно ли этого, чтобы помочь воспроизвести его?
Ответ №1:
Оказывается, файл, который я анализировал на компьютере ubuntu, использовал другой вариант markdown, в котором не были указаны заголовки первого уровня #
.