با استفاده از Python و re.finditer، همهٔ هدرهای Markdown (خط‌هایی که با یک تا شش علامت # شروع می‌شوند) را در یک فایل بخوان و برای هر هدر سطح و متن آن را استخراج و به صورت لیست نمایش بده.

9.0 بازدید آخرین ویرایش در 199 روز قبل ساعت 19:45

0.0

از ماژول re و تابع re.finditer استفاده کن؛ الگوی پیشنهادی r'^(#{1,6})\s*(.+)' را با پرچم re.MULTILINE به کار ببر تا همهٔ هدرها پیدا شوند. برای هر match سطح را با len(match.group(1)) محاسبه و متن هدر را با strip() تمیز کن — این روش برای اسکریپت‌های خودکارسازی، تولید مستندات و بخش‌هایی از مفسرها/کامپایلرها که نیاز به استخراج ساختار متن دارند مفید است.

توسط پژوهشگر در 199 روز قبل ساعت 19:45
دسته بندی ها: Python Python for beginner
reyhaneh در 199 روز قبل ساعت 19:46

الگوی پیشنهادی به خوبی هدرهای خطی را می‌یابد اما توجه کنید که در CommonMark تا سه فاصلهٔ ابتدایی قبل از # مجاز است و ممکن است هشتگ‌های پایانی یا فواصل اضافی را بخواهید حذف کنید؛ برای پوشش بهتر از الگوی r'^\s{0,3}(#{1,6})\s*(.*?)\s*(?:#+\s*)?$' با re.MULTILINE استفاده کنید. همچنین مراقب باشید که با الگوهای ساده ممکن است هدرها درون بلوک‌های کد یا fenced code اشتباهاً شناسایی شوند، پس برای اسناد پیچیده‌تر یا دقیق‌تر بهتر است از یک پارسر Markdown واقعی یا یک مکانیزم stateful برای نادیده گرفتن کدها استفاده کنید. برای استخراج سطح از len(match.group(1)) و برای متن هدر از match.group(2).strip() استفاده کنید تا خروجی تمیز و قابل‌اتکا بدست آید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری