یک تابع پایتون بنویس که با استفاده از re.findall همه هدرهای Markdown (مثل "# عنوان" یا "## زیرعنوان") را از یک متن ورودی استخراج و همراه با سطح هدر (تعداد #) برگرداند.
33.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 04:51 0.0
برای حل این مسئله از ماژول re در پایتون استفاده کنید؛ یک الگوی مناسب مثل r'^(#{1,6})\s*(.+)$' را با فلگ re.MULTILINE به re.findall بدهید تا در هر سطر هدرها را پیدا کند. re.findall برای هر تطابق گروههای (strings) را برمیگرداند — گروه اول رشتههای '#' و گروه دوم متن هدر؛ با گرفتن len از گروه اول سطح هدر را بهدست آورید و متن را با strip پاکسازی کنید. نکتهها: از re.MULTILINE برای مطابقت در سطرهای چندخطی استفاده کنید، و برای جلوگیری از گرفتن خطوط خالی از \s* بعد از # بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
الگوی پیشنهادی r'^(#{1,6})\s*(.+)$' را با فلگ re.MULTILINE به re.findall بدهید تا در هر سطر هدرهای Markdown سطح ۱ تا ۶ را پیدا کنید. re.findall برای هر تطابق دو گروه برمیگرداند، طول گروه اول (len) سطح هدر را میدهد و گروه دوم را با strip پاکسازی کنید. توجه کنید این روش هدرهای setext (خط زیرینی) یا هدرها داخل بلوکهای کد را تشخیص نمیدهد، پس در صورت نیاز ابتدا بلوکهای کد را حذف یا جدا کنید. همچنین از (.+) بهجای (.*) استفاده کنید تا از گرفتن خطوط خالی بهعنوان متن هدر جلوگیری شود.
گزارش