আমি এটি অনুসন্ধান করেছি এবং অনুসন্ধান করেছি এবং এটি খেলেছি এবং এটি নিখুঁত না হলেও এটি অন্যদের প্রথম এবং শেষ নামগুলি যা একটি ভেরিয়েবল হিসাবে দেওয়া হয়েছে তা বৈধ করার চেষ্টা করতে সহায়তা করতে পারে।
আমার ক্ষেত্রে, সেই পরিবর্তনশীলটি হ'ল নাম।
আমি আমার পিএইচপি জন্য নিম্নলিখিত কোড ব্যবহার করেছি:
if (preg_match('/\b([A-Z]{1}[a-z]{1,30}[- ]{0,1}|[A-Z]{1}[- \']{1}[A-Z]{0,1}
[a-z]{1,30}[- ]{0,1}|[a-z]{1,2}[ -\']{1}[A-Z]{1}[a-z]{1,30}){2,5}/', $name)
# there is no space line break between in the above "if statement", any that
# you notice or perceive are only there for formatting purposes.
#
# pass - successful match - do something
} else {
# fail - unsuccessful match - do something
আমি নিজেই RegEx শিখছি তবে আমার কাছে RegEx বন্ধু কর্তৃক প্রদত্ত কোডটির ব্যাখ্যা রয়েছে।
এটা এখানে:
Word ary b word একটি শব্দের সীমানায় অবস্থান যুক্ত করুন
নীচের নিয়মিত অভিব্যক্তিটি মেলে এবং এর ম্যাচটি ব্যাক্রেরেন্স নম্বর 1
[([এজেড] {1} [এজে] {1,30} [-] {0,1} | [এজেড] {1} [- \ '] {এ ক্যাপচার করুন) 1} [এজেড] {0,1} [আজ] {1,30} [-] {0,1} | [আজ]] 1,2} [- \ '] {1} [এজেড] {1} [ AZ] {1,30}) {2,5} »
2 থেকে 5 বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজনীয় হিসাবে ফিরে দেওয়া (লোভী) {{2,5} »
* আমি এই নোটের র্যামিফিকেশনগুলি বিবেচনা করে এখানে কিছু সাহায্যের প্রয়োজন *
দ্রষ্টব্য: আমি ক্যাপচারিং গ্রুপটি নিজেই পুনরাবৃত্তি করেছি। গোষ্ঠীটি কেবল সর্বশেষ পুনরাবৃত্তিটি ক্যাপচার করবে। সমস্ত পুনরাবৃত্তি ক্যাপচার জন্য পুনরাবৃত্তি গোষ্ঠীর চারপাশে একটি ক্যাপচারিং গ্রুপ রাখুন। «{2,5}»
নীচের নিয়মিত এক্সপ্রেশনটির সাথে মেলে (কেবলমাত্র এটির ব্যর্থ হলে পরবর্তী বিকল্পের চেষ্টা করা) «[এজেড]} 1 az [এজে] {1,30} [-] {0,1}»
"A" এবং "জেড" between [এজেড] {1} between এর মধ্যে সীমাতে একটি একক চরিত্রের সাথে মেলে
ঠিক 1 বার «{1}
"ক" এবং "জেড" between [আজ] {1,30} between এর মধ্যে সীমাতে একটি একক অক্ষরটির সাথে মেলে
এক থেকে 30 বারের মধ্যে, যতবার সম্ভব সম্ভব হয়ে ওঠা (লোভী) giving {1,30} »
"-" «[-] {0,1} list তালিকায় উপস্থিত একটি চরিত্রের সাথে মিল করুন
শূন্য এবং এক বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজন হিসাবে ফিরে দেওয়া (লোভী) «{0,1}»
বা নীচের নিয়মিত 2 নম্বর এক্সপ্রেশনটি মেলে (কেবলমাত্র এটির ক্ষেত্রে ব্যর্থ হলে পরবর্তী বিকল্পের চেষ্টা করা) «[এজেড] {1} [- \ '] {1} [এজেড] {0,1} [এজে] {1,30} [ -] {0,1 »
"A" এবং "জেড" between [এজেড] {1} between এর মধ্যে সীমাতে একটি একক চরিত্রের সাথে মেলে
ঠিক 1 বার «{1}
Below [- \ '] {1} below নীচের তালিকায় উপস্থিত একটি চরিত্রের সাথে মিল করুন
ঠিক 1 বার «{1}
একটি চরিত্র "-" «- 'এ' চরিত্র« \ '»
"A" এবং "জেড" এর মধ্যে পরিসরে একটি একক অক্ষর মেলে atch [এজেড] {0,1} »
শূন্য এবং এক বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজন হিসাবে ফিরে দেওয়া (লোভী) «{0,1}»
"ক" এবং "জেড" between [আজ] {1,30} between এর মধ্যে সীমাতে একটি একক অক্ষরটির সাথে মেলে
এক থেকে 30 বারের মধ্যে, যতবার সম্ভব সম্ভব হয়ে ওঠা (লোভী) giving {1,30} »
"-" «[-] {0,1} list তালিকায় উপস্থিত একটি চরিত্রের সাথে মিল করুন
শূন্য এবং এক বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজন হিসাবে ফিরে দেওয়া (লোভী) «{0,1}»
বা নীচে 3 নম্বর নিয়মিত অভিব্যক্তিটি মেলে (পুরো গ্রুপটি এটির সাথে মেলে যদি ব্যর্থ হয় তবে) «[আজ] {1,2} [- \ '] {1} [এজেড] {1} [এজে] {1,30} »
"ক" এবং "জেড" between [আজ] {1,2} between এর মধ্যে সীমাতে একটি একক চরিত্রের সাথে মেলে
এক থেকে ২ বারের মধ্যে, যতবার সম্ভব সম্ভব, প্রয়োজনীয় হিসাবে ফিরে দেওয়া (লোভী) {{1,2} »
"" এবং "'" «[- \'] {1} between এর মধ্যে বিস্তৃত একক চরিত্রের সাথে মেলে
ঠিক 1 বার «{1}
"A" এবং "জেড" between [এজেড] {1} between এর মধ্যে সীমাতে একটি একক চরিত্রের সাথে মেলে
ঠিক 1 বার «{1}
"ক" এবং "জেড" between [আজ] {1,30} between এর মধ্যে সীমাতে একটি একক অক্ষরটির সাথে মেলে
এক থেকে 30 বারের মধ্যে, যতবার সম্ভব সম্ভব হয়ে ওঠা (লোভী) giving {1,30} »
আমি জানি এই বৈধতা সম্পূর্ণরূপে ধরে নিয়েছে যে ফর্ম পূরণ করা প্রত্যেক ব্যক্তির একটি পশ্চিমা নাম রয়েছে এবং এটি বিশ্বের বিশাল জনগণকে মুছে ফেলতে পারে। তবে আমার মনে হচ্ছে এটি যথাযথ দিকের একটি পদক্ষেপ। গুরুগণের সরলতার সাথে সম্বোধনের জন্য এই নিয়মিত প্রকাশটি খুব মৌলিক বা সম্ভবত অন্য কোনও কারণ আছে যা আমি আমার অনুসন্ধানগুলিতে উপরের কোডটি সন্ধান করতে অক্ষম ছিলাম। আমি এই বিটটি বের করার চেষ্টা করে অনেক দীর্ঘ সময় ব্যয় করেছি, আপনি নীচে আমার পরীক্ষার নামগুলি দেখলে আপনি সম্ভবত লক্ষ্য করবেন যে এই সমস্ত বিষয়ে আমার মন কী কুয়াশাচ্ছন্ন।
আমি নিম্নলিখিত নামগুলিতে কোডটি পরীক্ষা করেছি এবং ফলাফলগুলি প্রতিটি নামের ডানদিকে বন্ধনীতে রয়েছে।
- স্মিথ স্টিভ (ব্যর্থ)
- স্টিভ 3 স্মিথ (ব্যর্থ)
- স্টিভ স্মিথ (ব্যর্থ)
- স্টিভ স্মিথ (ব্যর্থ)
- স্টিভ স্মাথ (স্টিভ এসএম-এ পাস করেছেন)
- বেয়ারে ডি'আর (বিয়ারওয়্যারগুলিতে পাস করা)
- জো ব্লো (পাস)
- হিউং কিউং উ (পাস)
- মাইক ও'নেল (পাস)
- স্টিভ জনসন-স্মিথ (পাস)
- জোজেফ-স্মোজেভ হিমডেল (উত্তীর্ণ)
- হে হেনরি স্মিথ (উত্তীর্ণ)
- মাথাইস ডিআরাস (পাস)
- মার্টিন লুথার কিং জুনিয়র (পাস)
- ডাউনটাউন-জেমস ব্রাউন (পাস)
- ড্যারেন ম্যাককার্টি (পাস)
- জর্জ ডি ফানক মাস্টার (পাস)
- কুর্তিস বি-বাল বাস্কেটবল (পাস)
- আহমদ এল জেফি (পাস)
যদি আপনার বুনিয়াদি নাম থাকে তবে উপরের কোডটির জন্য কাজ করার জন্য একাধিক পাঁচটির বেশি থাকতে হবে, যা পরীক্ষার সময় আমি ব্যবহার করেছি তার মতোই, এই কোডটি আপনার জন্য হতে পারে।
আপনার যদি কোনও উন্নতি হয় তবে দয়া করে আমাকে জানান। আমি ঠিক প্রাথমিক পর্যায়ে আছি (RegEx বের করার প্রথম কয়েক মাস)।
ধন্যবাদ এবং শুভকামনা, স্টিভ