یک برنامهٔ پایتون بنویسید که یک فایل متنی Markdown را بخواند و همهٔ هدرهای Markdown (خطهایی که با ۱ تا ۶ علامت # شروع میشوند) را استخراج کرده و لیستی از تاپلها به صورت (سطح، متن هدر) برگرداند.
12.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 03:31 0.0
برای حل این مسئله از ماژول re پایتون استفاده کنید؛ یک الگوی منظم مانند r'^(#{1,6})\s*(.+)$' را با flag مناسب (مثلاً re.MULTILINE) یا با خواندن خطبهخط فایل و استفاده از re.match بکار ببرید. سطح هدر برابر طول گروه اول (#ها) و متن هدر گروه دوم خواهد بود؛ بهتر است متن را با strip پاکسازی کنید و فایل را با encoding='utf-8' باز کنید؛ در صورت تمایل میتوانید برای نادیدهگرفتن بلاکهای کد (``` ... ```) یک حالت سادهی تراکینگ اضافه کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
یک نکته عملی: از یک الگوی منظم مثل r'^(#{1,6})\s*(.+?)\s*(?:#+\s*)?$' همراه با flag= re.MULTILINE یا خواندن خطبهخط و re.match استفاده کنید تا سطح = len(group1) و متن = group2.strip() بدست آید. برای دقت بیشتر، هنگام خواندن فایل با encoding='utf-8' یک حالت ساده برای رد کردن بلوکهای کد ``` … ``` پیاده کنید و به ترافیکهایی مثل هدرهای Setext (خطهای زیرین ---/===) یا هدرها داخل توضیحات HTML هم توجه داشته باشید. قبل از استفاده نهایی، روی نمونههای واقعی Markdown تست کنید چون موارد لبهای (هشهای درون خط، هشهای انتهایی، فضای خالی غیرمعمول) ممکن است نیاز به تطبیق بیشتر داشته باشند.
گزارش