مسأله شماره ۵۹:
عبارت های منظم یا Regular Expressions که در تمام زبان های برنامه نویسی پشتیبانی می شوند به شما امکان بررسی منطبق بودن یک رشته با الگوهای مختلف را می دهند. مثلا برای تست صحت یک ایمیل یا رمز عبور عبارت های منظم کاربرد دارند.
در عین حال، به دلیل مشکلات اقتصادی اخیر در هستی، نسل جدیدی از سارقان ظهور پیدا کرده اند به نام «سارقان استعداد» که با ربودن استعداد های یک دنیا، آن ها را به دنیاهای دیگر Teleport کرده و می فروشند.
متأسفانه یا خوشبختانه، شما نیز توسط یکی از این سارقان به عنوان «استعداد» شناخته شدید و پس از ربودن، شما را به دنیای U67 انتقال داده است.
در این دنیای عجیب و غریب، هرگونه استفاده از کلمات Regex, Regular Expression و کلمات مشابه مجازات سنگینی معادل پرتاب شدن در سیاه چاله مرکزی آن دنیا را به همراه دارد.
شرکت نرم افزاری که شما را از سارق محترم خریداری کرده، یک فروشگاه آنلاین را توسعه می دهد که برای فرم های ثبت نام کاربر نیاز به اعتبارسنجی رمز عبور وارد شده دارد.
خط اول ورودی شامل T تعداد کیس ها، سپس T کیس وارد می شود.
در خط اول هر کیس، مشخصات الگوی صحت سنجی رمز عبور وارد می شود
سپس در خط بعد عدد N معادل تعداد رمز هایی که باید چک شوند و بعد از آن N خط رمز عبور برای چک شدن وارد می شود.
هر الگوی صحت سنجی با کاراکتر سپس دو نقطه سپس حداقل تعداد کاراکترهای آن الگو نشان داده می شود.
برای نمونه در کیس اول، رمز عبور باید حداقل ۸ کاراکتر باشد، حداقل ۱ کاراکتر عددی داشته باشد، حداقل ۲ کاراکتر حرفی داشته باشد، حداقل یک علامت نشانه گذاری (@#&؟!؛) داشته باشد.
Input:
2
N:1 W:2 L:8 P:1
3
xvhssgb
MyPass@20
2030World
N:2 W:1 L:10 P:1
2
new9s#ford2
8fghmo&books
Output:
'xvhssgb' length is less than 8 characters
'MyPass@20' is valid
'2030World' must have at least 1 punctuation marks.
'new9s#ford2' is valid
'8fghmo&books' must have at least 2 numerics.
#regex #password
عبارت های منظم یا Regular Expressions که در تمام زبان های برنامه نویسی پشتیبانی می شوند به شما امکان بررسی منطبق بودن یک رشته با الگوهای مختلف را می دهند. مثلا برای تست صحت یک ایمیل یا رمز عبور عبارت های منظم کاربرد دارند.
در عین حال، به دلیل مشکلات اقتصادی اخیر در هستی، نسل جدیدی از سارقان ظهور پیدا کرده اند به نام «سارقان استعداد» که با ربودن استعداد های یک دنیا، آن ها را به دنیاهای دیگر Teleport کرده و می فروشند.
متأسفانه یا خوشبختانه، شما نیز توسط یکی از این سارقان به عنوان «استعداد» شناخته شدید و پس از ربودن، شما را به دنیای U67 انتقال داده است.
در این دنیای عجیب و غریب، هرگونه استفاده از کلمات Regex, Regular Expression و کلمات مشابه مجازات سنگینی معادل پرتاب شدن در سیاه چاله مرکزی آن دنیا را به همراه دارد.
شرکت نرم افزاری که شما را از سارق محترم خریداری کرده، یک فروشگاه آنلاین را توسعه می دهد که برای فرم های ثبت نام کاربر نیاز به اعتبارسنجی رمز عبور وارد شده دارد.
خط اول ورودی شامل T تعداد کیس ها، سپس T کیس وارد می شود.
در خط اول هر کیس، مشخصات الگوی صحت سنجی رمز عبور وارد می شود
سپس در خط بعد عدد N معادل تعداد رمز هایی که باید چک شوند و بعد از آن N خط رمز عبور برای چک شدن وارد می شود.
هر الگوی صحت سنجی با کاراکتر سپس دو نقطه سپس حداقل تعداد کاراکترهای آن الگو نشان داده می شود.
برای نمونه در کیس اول، رمز عبور باید حداقل ۸ کاراکتر باشد، حداقل ۱ کاراکتر عددی داشته باشد، حداقل ۲ کاراکتر حرفی داشته باشد، حداقل یک علامت نشانه گذاری (@#&؟!؛) داشته باشد.
Input:
2
N:1 W:2 L:8 P:1
3
xvhssgb
MyPass@20
2030World
N:2 W:1 L:10 P:1
2
new9s#ford2
8fghmo&books
Output:
'xvhssgb' length is less than 8 characters
'MyPass@20' is valid
'2030World' must have at least 1 punctuation marks.
'new9s#ford2' is valid
'8fghmo&books' must have at least 2 numerics.
#regex #password