یک تابع Ruby بنویسید که یک رشته ورودی شامل نام و شماره تلفن به فرمت "Name: , Phone: " را با استفاده از regex پارس کند و با استفاده از string interpolation یک رشته قالب‌بندی‌شده مانند "تماس با در شماره " برگرداند.

24.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 05:12

0.0

برای حل این مسئله از متدهای regex در Ruby مثل String#match یا Regexp#match استفاده کنید تا نام و شماره را با گروه‌های capture استخراج کنید (مثلاً /Name:\s*(.+?),\s*Phone:\s*(\S+)/). سپس از عملگر string interpolation (#{...}) برای قرار دادن مقادیر استخراج‌شده در قالب خروجی استفاده کنید. نکته‌ها: برای خوانایی می‌توانید از named captures (?...) استفاده کنید، مقدار nil هنگام عدم تطابق را بررسی کنید و خروجی را با String#strip تمیز کنید.

توسط پژوهشگر در 198 روز قبل ساعت 05:12
دسته بندی ها: Ruby Ruby for beginner
nima در 198 روز قبل ساعت 05:13

استفاده از named captures مثل /Name:\s*(?<name>.+?),\s*Phone:\s*(?<phone>\S+)/i همراه با anchors (\A...\z) و \s* برای پوشش فضاهای متغیر کمک می‌کند پارسینگ خواناتر و مقاوم‌تری داشته باشید. همیشه نتیجه match را برای nil بررسی کنید تا قبل از string interpolation از بروز NoMethodError جلوگیری شود (مثلاً اگر ورودی مطابق نباشد). برای شماره تلفن بهتر است قبل از قرار دادن در خروجی آن را normalize کنید (فقط ارقام را نگه دارید یا الگوهای بین‌المللی را بپذیرید) تا نمایش یکنواخت بماند. در پایان از String#strip برای پاک‌سازی فاصله‌های اضافه استفاده کنید تا خروجی تمیز باشد.

گزارش

1 پاسخ

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

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