কম্পিউটার, প্রোগ্রামিং
পিএইচপি (Regex) - এটা কি? উদাহরণ এবং নিয়মিত এক্সপ্রেশন চেক
যখন যেকোন আধুনিক প্রোগ্রামিং ভাষা টেক্সট নিয়ে কাজ, ডেভেলপারদের ক্রমাগত আকাঙ্ক্ষিত প্যাটার্ন মেনে চলার জন্য ইনপুট বৈধতা লক্ষ্য সঙ্গে দেখা অনুসন্ধান ও পরীক্ষা টুকরা এবং চরিত্র তথ্য অপারেশন প্রক্রিয়াকরণের অন্যান্য ধরনের প্রতিস্থাপন করুন। আপনার নিজের বৈধতা আলগোরিদিম বিকাশ সময় ক্ষতি, কোড সামঞ্জস্য এবং তার উন্নয়ন ও আধুনিকায়নে জটিলতা বাড়ে।
ইন্টারনেট ও ওয়েব-নকশা ভাষার দ্রুত উন্নয়ন এই কোড জন্য প্রয়োজন বোধ করা ন্যূনতম পরিমাণ পাঠ্য প্রক্রিয়াকরণ বহুমুখী এবং কম্প্যাক্ট উপায়ে সৃষ্টি প্রয়োজন। এটা কোন ব্যতিক্রম নয় এবং নতুন এবং পিএইচপি ভাষার পেশাদারী ডেভেলপারদের মধ্যে জনপ্রিয়। টেক্সট টেমপ্লেট হিসাবে রেগুলার এক্সপ্রেশন ভাষা টেক্সট হ্যান্ডলিং কাজটি সহজতর করা এবং দশ এবং লাইনের শত শত কোড কমাতে। অনেক সমস্যা আদৌ ছাড়া সমাধান করা যায় না।
পিএইচপি রেগুলার এক্সপ্রেশন
«Ereg», «mb_ereg» এবং «preg» - পিএইচপি ভাষা রেগুলার এক্সপ্রেশনের সঙ্গে কাজ করার জন্য তিন মেকানিজম হয়েছে। সবচেয়ে সাধারণ ইন্টারফেস «preg», যার ফাংশন PCRE রেগুলার এক্সপ্রেশন সমর্থন, মূলত পার্ল ভাষা, যা পিএইচপি প্যাকেজের মধ্যে অন্তর্ভুক্ত করা হয় জন্য উন্নত লাইব্রেরি অ্যাক্সেস প্রদান করা হয়। Preg-সচেষ্ট একটি প্রদত্ত টেক্সট স্ট্রিং ম্যাচিং মধ্যে ফাংশন, রেগুলার এক্সপ্রেশনের ভাষায় একটি নির্দিষ্ট প্যাটার্ন অনুযায়ী।
সিনট্যাক্স বুনিয়াদি
একটি সংক্ষিপ্ত নিবন্ধের অংশ হিসেবে এটা সমগ্র রেগুলার এক্সপ্রেশন সিনট্যাক্স বিস্তারিতভাবে বর্ণনা করতে, এই জন্য সেখানে একটি বিশেষ সাহিত্য হয় অসম্ভব। আমরা কেবলমাত্র প্রধান উপাদান উপস্থিত ডেভেলপার জন্য সুযোগ দেন এবং কোড উদাহরণ বুঝতে।
পিএইচপি রেগুলার এক্সপ্রেশন আনুষ্ঠানিকভাবে খুব কঠিন সংজ্ঞায়িত করা হয়, সেইজন্য এবং বিবরণ সহজ করে। একটি রেগুলার এক্সপ্রেশন, একটি টেক্সট স্ট্রিং। এটা একটা ডেডিকেটেড বিভাজক টেমপ্লেট ও পরিবর্তক উপায় এটা হ্যান্ডেল করতে ইঙ্গিত নিয়ে গঠিত। বিভিন্ন বিকল্প এবং প্যাটার্নের পুনরাবৃত্তি মধ্যে সম্ভাব্য অন্তর্ভুক্তি।
উদাহরণস্বরূপ, এক্সপ্রেশনে / \ ঘ {3} - \ ঘ {2} - \ ঘ {2} / মি বিভাজক "/" টেমপ্লেট দ্বারা অনুসরণ, এবং প্রতীক «মি» সংশোধক।
সকল রেগুলার এক্সপ্রেশনের শক্তি মেটা-টি অক্ষর ব্যবহার এনকোডেড হয়েছে। "\" - প্রধান ভাষা metacharacter ব্যাকস্ল্যাশ হয়। এটা তোলে বিপরীত উপর অক্ষর নিম্নলিখিত ধরণ পরিবর্তন (যেমন। ই একজন সাধারণ চরিত্র ওয়াইল্ডকার্ড এবং তদ্বিপরীত রূপান্তরিত)। «|» বিকল্প টেমপ্লেট নির্দিষ্ট করে আরেকটি গুরুত্বপূর্ণ metacharacter সোজা লাইন। মেটা-অক্ষরের আরো উদাহরণ:
| ^ | শুরু বস্তু বা একটি স্ট্রিং |
| ( | শুরু subpattern |
| ) | শেষ subpattern |
| { | স্টার্ট কোয়ান্টিফায়ার |
| } | শেষ কোয়ান্টিফায়ার |
| \ ঘ | 0 থেকে 9 দশমিক অঙ্ক |
| \ ডি | কোন চরিত্র করে একটি সংখ্যা নয় |
| \ গুলি | খালি প্রতীক, স্থান, ট্যাব, |
| \ W | প্রতীক অভিধান |
পিএইচপি, নিয়মিত এক্সপ্রেশন, স্থান আলাদা বৈধ অক্ষর হিসেবে গণ্য, তাই XYZ এবং এবিসি অভিব্যক্তি কোথায় ভিন্ন প্রক্রিয়া।
subpatterns
প্রথম বন্ধনী দ্বারা পিএইচপি নিয়মিত subpatterns সালে, এবং তারা মাঝে মাঝে "subexpressions" বলা হয়। নিম্নলিখিত কাজ কর্ম সম্পাদন:
বরাদ্দ বিকল্প। উদাহরণস্বরূপ, তাপ ধরণ (কিছু | বার্ড |) শব্দের "তাপ" সঙ্গে সমানুপাতিক, "Firebird" এবং "গরম"। আর বন্ধনী ছাড়া এটি শুধুমাত্র একটি খালি স্ট্রিং, "পাখি" এবং "গরম" হতে হবে।
"দর্শনীয়" subpattern। এর মানে হল যে যদি প্যাটার্ন সাবস্ট্রিং মিলেছে, তারপর সব ম্যাচ ফেরৎ। স্বচ্ছতা জন্য, আমরা একটি উদাহরণ দিতে। নিম্নলিখিত রেগুলার এক্সপ্রেশন দেওয়া হলে বিজয়ী পায় ((স্বর্ণ | সোনা ধাতুপট্টাবৃত) (পদক | কাপ)) - এবং মিলের জন্য স্ট্রিং, "বিজয়ী স্বর্ণপদক পায়।" প্রাথমিক ফ্রেজ ছাড়াও, অনুসন্ধান ফলাফল জারি হবে: "গোল্ড মেডেল", "পদক", "সোনা"।
অপারেটর পুনরাবৃত্তির (kvadrifikatory)
রেগুলার এক্সপ্রেশন সংকলন প্রায়ই সংখ্যা এবং চিহ্ন পুনরাবৃত্তি বিশ্লেষণ করা প্রয়োজন। এই সমস্যা, যদি না পুনরাবৃত্তির অনেক নয়। কিন্তু যখন আমরা তাদের সঠিক সংখ্যা জানি না কি করা যায়? এই ক্ষেত্রে এটি বিশেষ metacharacters ব্যবহার করা প্রয়োজন।
metacharacters সংখ্যা উল্লেখ করুন - ব্যবহার kvadrifikatory পুনরাবৃত্তির বর্ণনার জন্য। Kvadrifikatory দুই ধরণের:
- বন্ধনীর মধ্যে সাধারণ;
- হ্রাস পেয়েছে।
সার্বিক কোয়ান্টিফায়ার যেমন এক্স {2,5} যেমন ধনুর্বন্ধনী দুই নম্বর, আকারে দেয়া পুনরাবৃত্তির উপাদান সর্বনিম্ন এবং সর্বোচ্চ সংখ্যা দ্বারা ছোঁয়া। পুনরাবৃত্তির সর্বোচ্চ সংখ্যক জানা যায় না, তাহলে দ্বিতীয় যুক্তি উল্লেখ করা হয় না: X {2}।
সংক্ষিপ্ত quantifiers অর্ডার অপ্রয়োজনীয় ওভারলোডিং সিনট্যাক্স এড়ানোর জন্য পুনরাবৃত্তির সবচেয়ে সাধারণ জন্য প্রতীক। সাধারণত তিন মধ্যেও আছে:
1. * - শূন্য বা তার বেশি পুনরাবৃত্তির, যা {0,} এ সমতুল্য।
2. - এক বা একাধিক পুনরাবৃত্তির, অর্থাত্, {1} ...
3.? - শূন্য বা শুধুমাত্র এক পুনরাবৃত্তি - {0,1}।
উদাহরণ Regex
সেরা পাঠ্যপুস্তক - যারা রেগুলার এক্সপ্রেশনের, উদাহরণ শিখতে জন্য। আমরা কিছু যে প্রচেষ্টার একটি সর্বনিম্ন সঙ্গে তাদের সুযোগ দেন দেব। সকল কোড পিএইচপি 4.x এবং উপরোক্ত সংস্করণের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ। সম্পূর্ণরূপে সিনট্যাক্স এবং আমরা জে .. Friedl, "রেগুলার এক্সপ্রেশনের", যা সম্পূর্ণরূপে সিনট্যাক্স বিবেচিত দ্বারা বই সুপারিশ সব ভাষা বৈশিষ্ট্য ব্যবহার বোঝার জন্য এবং সেখানে রেগুলার এক্সপ্রেশনের না শুধুমাত্র পিএইচপি, এছাড়াও একটি পাইথন, পার্ল, মাইএসকিউএল, জাভা, রুবি, এবং C # এর জন্য উদাহরণ।
ভ্যালিডেশন ই-মেল ঠিকানা
কাজ। সেখানে একটি ইন্টারনেট পৃষ্ঠা যার উপর পরিদর্শক ঠিকানা EMAIL অনুরোধ করা হয়। নিয়মিত প্রকাশ বার্তা পাঠানোর আগে ঠিকানাগুলির শুদ্ধি চেক করতে হবে। চেক নিশ্চয়তা দেয় না উল্লিখিত ডাকবাক্স আসলে বিদ্যমান এবং বার্তা গ্রহণ করে। কিন্তু স্পষ্টত ভুল ঠিকানাগুলি এটা করতে পারেন আটকানোর।
সিদ্ধান্ত। কোন প্রোগ্রামিং ভাষা হিসাবে, পিএইচপি Regex ইমেল-ঠিকানা যাচাই বিভিন্ন উপায়ে বাস্তবায়িত হতে পারে, এবং এই প্রবন্ধে উদাহরণ চূড়ান্ত এবং একমাত্র চয়েস থাকে না। অতএব, প্রতিটি ক্ষেত্রে, আমরা প্রয়োজনীয়তা যখন প্রোগ্রামিং এবং নির্দিষ্ট বাস্তবায়ন ডেভেলপার ওপর সম্পূর্ণভাবে নির্ভর করে বিবেচনায় নেয়া করা প্রয়োজন একটি তালিকা প্রদান করবে।
সুতরাং, অভিব্যক্তি একটি বৈধ ইমেইল পরীক্ষা পরীক্ষা করা উচিত নিম্নলিখিত শর্তাবলী:
- শুরুর মধ্যে উপস্থিতি লাইন @ প্রতীক, এবং কোন ফাঁক হয়ে আছে।
- @ প্রতীকের ঠিকানাটির ডোমেনে অংশ, ডোমেইন নাম জন্য শুধুমাত্র বৈধ অক্ষর রয়েছে। একই ব্যবহারকারীর নামের ক্ষেত্রে প্রযোজ্য।
- যখন ব্যবহারকারী নাম পরীক্ষণ যেমন একটি ঊর্ধকমা অথবা উল্লম্ব লাইন হিসেবে বিশেষ অক্ষর উপস্থিতিতে নির্ধারণ করা প্রয়োজন। এই ধরনের চিহ্ন বিপদজনক এবং যে SQL-ইনজেকশন আক্রমণের যেমন ধরণের অন্তর্ভুক্ত করা যেতে পারে। ঠিকানাগুলি এড়িয়ে চলুন।
- ব্যবহারকারীর নাম মাত্র এক পয়েন্ট, যা স্ট্রিং প্রথম অথবা শেষ অক্ষর নাও হতে পারে অনুমতি দেয়।
- ডোমেন নাম অন্তত দুই এবং অনধিক ছয় অক্ষর থাকা আবশ্যক।
উদাহরণ, একাউন্টে এই অবস্থার সব গ্রহণ নিচের চিত্র দেখা যায়।
একটি URL এর ভ্যালিডেশন
কাজ। তা পরীক্ষা করুন নির্দিষ্ঠ পাঠ স্ট্রিং একটি বৈধ ঠিকানা URL টি। আবার, আমরা লক্ষ করুন যে, রেগুলার এক্সপ্রেশন URL টি-পরীক্ষণ নানাভাবে প্রয়োগ করা যাবে।
সিদ্ধান্ত। আমাদের চূড়ান্ত সংস্করণ নিম্নরূপ:
/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /
এখন অঙ্কন ব্যবহার করে আরো বিস্তারিত তার উপাদান বিশ্লেষণ করুন।
| দাবি 1 | আগে URL টি যে কোন অক্ষর থাকা উচিত নয় |
| দাবি 2 | বাধ্যতামূলক উপসর্গ উপস্থিতি পরীক্ষা করে দেখুন «HTTP» |
| আইটেম 3 | কোন চিহ্ন হতে হবে |
| দাবি 4 | যদি «গুলি», একটি সুরক্ষিত সংযোগ করতে URL পয়েন্ট «HTTPS» |
| দাবি 5 | এর প্রয়োজনীয় অংশ "//" |
| দাবি 6 | কোন অক্ষর |
| পি। 7-9 | যাচাই করা হচ্ছে প্রথম স্তরের ডোমেইন এবং বিন্দু উপস্থিতিতে |
| p.10-13 | দ্বিতীয় স্তর এবং বিন্দু লেখার ডোমেন যাচাই |
| p.14-17 |
ফাইলের গঠন URL টি - সংখ্যা, বর্ণ, আন্ডারস্কোর, ড্যাশ, বিন্দু একটি সেট, এবং শেষে স্ল্যাশ |
ক্রেডিট কার্ড নম্বর চেক করুন
কাজ। আপনার লেখা সবচেয়ে সাধারণ পেমেন্ট সিস্টেম ক্রেডিট কার্ড নম্বর, এর বৈধতা বাস্তবায়ন করা প্রয়োজন। শুধুমাত্র কার্ডের জন্য একটি বৈকল্পিক ভিসা এবং মাস্টারকার্ড।
সিদ্ধান্ত। যখন অভিব্যক্তি তৈরি আপনি ইনপুট রুমে ফাঁক সম্ভাব্য উপস্থিতি বিবেচনা করা প্রয়োজন। মানচিত্রে ডিজিটের সহজ পড়া এবং শ্রুতিলিপি জন্য দলে বিভক্ত করা হয়। অতএব, এটা স্বাভাবিক যে একজন ব্যক্তির (অর্থাত। ই স্পেস ব্যবহার করে) এই ভাবে একটি সংখ্যা লিখুন চেষ্টা করতে পারেন।
একটি সার্বজনীন অভিব্যক্তি একাউন্টে সম্ভব স্পেস বা হাইফেন লাগে লিখুন, চেয়ে কেবল সংখ্যার ব্যতীত সমস্ত অক্ষর বাতিল জটিল। অতএব, আমরা একটি ওয়াইল্ড কার্ড অভিব্যক্তি / ডি, যা সংখ্যার ব্যতীত সমস্ত অক্ষর সরিয়ে ফেলা হবে ব্যবহার সুপারিশ।
এখন আপনি চেক নম্বর সরাসরি যেতে পারবেন না। সকল কোম্পানি, ক্রেডিট কার্ড প্রদানকারীগন একটি অনন্য নম্বর বিন্যাস ব্যবহার করুন। উদাহরণে এটা ব্যবহার করা হয়, এবং ক্লায়েন্ট কোম্পানির নাম লিখতে হবে না - এটা সংখ্যা দ্বারা নির্ধারিত হয়। ভিসা কার্ড সবসময় সংখ্যার 4 দিয়ে শুরু হয় এবং 13 বা 16 ডিজিটের দৈর্ঘ্য আছে। মাস্টারকার্ড একটি দীর্ঘ সংখ্যা 16. এর ফলে সঙ্গে 51-55 পরিসীমা মধ্যে শুরু হতে যাচ্ছে, আমরা নিম্নলিখিত অভিব্যক্তি পাবেন:
অর্ডার প্রক্রিয়া করার আগে আরও নম্বর, যা Luhn আলগোরিদিমের গণনা করা হয় শেষের ডিজিট পরীক্ষা করা সম্ভব।
ফোন নম্বর যাচাই করা
কাজ। প্রদত্ত ফোন নম্বরটি শুদ্ধি পরীক্ষা করা হচ্ছে।
সিদ্ধান্ত। নির্ধারিত এবং মোবাইল টেলিফোন সংখ্যায় ডিজিটের সংখ্যা যথেষ্ট দেশের উপর নির্ভর করে, তাই সর্বজনীন, ফোন নম্বর সঠিকভাবে অসম্ভব রেগুলার এক্সপ্রেশান্স ব্যবহার করে চেক করুন। কিন্তু আন্তর্জাতিক নম্বরে প্যাটার্ন চেক করার জন্য একটি কঠোর বিন্যাস এবং নিখুঁত আছে। এমনকি আরও, যাতে আরো এবং আরো জাতীয় টেলিফোন অপারেটরদের একই মান পূরণ করার চেষ্টা করছেন। রুম গঠন নিম্নরূপ:
+ + CCC.NNNNNNNNNNxEEEE, যেখানে:
- সি - দেশ 1-3 ডিজিটের কোড।
- এন - 14 টি সংখ্যা পর্যন্ত সংখ্যা।
- ই - ঐচ্ছিক এক্সটেনশান।
প্লাস একটি অপরিহার্য উপাদান, এবং চিহ্ন এক্স বর্তমানে শুধুমাত্র যখন এক্সটেনশন প্রয়োজন হয়।
এর ফলে আমরা নিম্নলিখিত অভিব্যক্তি আছে:
^ \ [0-9] {1,3 } \ [0-9] {4,14}। (:। এক্স + +)? $
সীমার মধ্যে সংখ্যার
কাজ। এটি একটি নির্দিষ্ট পরিসীমা কাকতালীয় পূর্ণসংখ্যা নিশ্চিত করা প্রয়োজন। উপরন্তু, এটি একটি রেগুলার এক্সপ্রেশন পরিসীমা থেকে শুধুমাত্র সংখ্যা এটি প্রয়োজনীয়।
সিদ্ধান্ত। এখানে সবচেয়ে সাধারণ ক্ষেত্রে কিছু করতে কয়েক এক্সপ্রেশন আছেন:
| 1 থেকে 24 ঘন্টা নির্ধারণ | ^ (1 [0-2] | [1-9]) $ |
| মাস 1-31 দিন | ^ (3 [01] | [12] [0-9] | [1-9]) $ |
| সেকেন্ড বা মিনিট 0-59 | ^ [1-5]? [0-9] $ |
| 1 থেকে 100 থেকে একটি নম্বরে | * (100 |? [1-9] [0-9]) $ |
| বছর 1-366 দিন | ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $ |
অনুসন্ধান আইপি অ্যাড্রেস
কাজ। তা নির্ধারণ করা একটি প্রদত্ত স্ট্রিং 000.000.000.000-255.255.255.255 থেকে সীমার মধ্যে IPv4- র বিন্যাসে একটি বৈধ IP- ঠিকানা কিনা প্রয়োজনীয়।
সিদ্ধান্ত। পিএইচপি ভাষায় কোনো সমস্যা হিসাবে, রেগুলার এক্সপ্রেশন অনেক varintov হয়েছে। উদাহরণস্বরূপ, এটি:
এক্সপ্রেশন অনলাইনে পরীক্ষণ
সঠিকভাবে Regex চেক নতুনদের বাক্য গঠন জটিলতা, যা "নিয়মিত" প্রোগ্রামিং ভাষা থেকে পৃথক কারণ কঠিন হতে পারে জন্য। এই সমস্যা সমাধানের জন্য, অনেক অনলাইন পরীক্ষকগণ অভিব্যক্তি এটা সহজ আপনি বাস্তব টেক্সট নির্মিত টেমপ্লেটের শুদ্ধি পরীক্ষা করতে হয়। প্রোগ্রামার অভিব্যক্তি এবং যাচাইকরণ তথ্য প্রবেশ এবং সঙ্গে সঙ্গে প্রক্রিয়াকরণ ফলাফল দেখতে। সাধারণত একটি রেফারেন্স অধ্যায়, যা সর্বাধিক বর্ধিত ভাষার জন্য রেগুলার এক্সপ্রেশনের, উদাহরণ এবং বাস্তবায়ন পার্থক্য বিস্তারিত উপস্থিত নেই।
কিন্তু পুরোপুরি আস্থা অনলাইন পরিষেবা ফলাফল যে সকল বিকাশকারীগণ পিএইচপি ব্যবহার জন্য সুপারিশ করা। একটি রেগুলার এক্সপ্রেশন, লেখা আছে এবং ব্যক্তির মধ্যে যাচাই হয়ে গেলে, যোগ্যতা উত্থাপন এবং ত্রুটি অনুপস্থিতি গ্যারান্টি।
Similar articles
Trending Now