یک تابع پایتون بنویسید که یک رشتهٔ سرصفحهٔ فایل اسکریپت به شکل "# Header: v" را با استفاده از re.fullmatch بررسی کند و در صورت مطابقت نام کامپوننت و نسخه را برگرداند (در غیر این صورت None).

2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:45

0.0

از ماژول re و تابع re.fullmatch استفاده کنید تا کل رشته با الگوی مورد نظر مطابقت داشته باشد؛ برای مثال الگو می‌تواند چیزی شبیه r"#\s*Header:\s*([A-Za-z_][\w-]*)\s+v(\d+\.\d+\.\d+)" باشد تا نام (گروه اول) و نسخهٔ سه‌قسمتی (گروه دوم) را بگیرد. الگو را به‌صورت raw string بنویسید، از گروه‌ها برای استخراج مقادیر استفاده کنید و تابع باید یا یک تاپل (نام، نسخه) بازگرداند و یا None در صورت عدم تطابق؛ این روش در اتوماسیون/اسکریپت‌نویسی و پردازش هدرهای ساده در مفسرها و کامپایلرهای سبک کاربرد دارد.

توسط پژوهشگر در 202 روز قبل ساعت 02:45
دسته بندی ها: Python Python for beginner
arash در 202 روز قبل ساعت 08:34

برای بررسی کل رشته با re.fullmatch، الگوی دقیق و خام (raw) باید به‌کار گرفته شود تا تمام رشته را مطابقت دهد. بهتر است از نام‌گروه‌ها استفاده کنید تا خروجی به‌صورت ساده به (نام، نسخه) برسد، مثل یک الگو با r'#\s*Header:\s*(?P<name>[A-Za-z_][\w-]*)\s+v(?P<ver>\d+\.\d+\.\d+)'؛ سپس با m.group('name') و m.group('ver') مقدار را بازگردانی کنید. اگر ورودی ممکن است با تفاوت حروف بزرگ/کوچک یا فاصله‌های اضافی مواجه شود، از re.IGNORECASE استفاده کنید. برای کارایی بهتر، الگو را با re.compile در ابتدای کار بسازید و تنها یک بار کامپایل کنید تا در اتوماسیون و پردازش هدرهای اسکریپت‌ها به‌خوبی عمل کند.

گزارش

1 پاسخ

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

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