অনির্দিষ্ট নিবন্ধগুলির জন্য ব্যাকরণ সংক্রান্ত নিয়মগুলি আপনাকে দেখতে হবে (ইংরেজি ব্যাকরণে কেবল দুটি অনির্দিষ্ট নিবন্ধ রয়েছে - "ক" এবং "একটি) আপনি এই শব্দটিকে সঠিকভাবে সম্মত করতে পারেন না তবে ইংরেজি ব্যাকরণের নিয়মগুলি খুব স্পষ্ট :
"ক এবং এ শব্দগুলি অনির্দিষ্ট নিবন্ধসমূহ। আমরা স্বরধ্বনি (ক, ই, আই, ও, ইউ) দিয়ে শুরু হওয়া শব্দের আগে এবং অনির্দিষ্ট নিবন্ধটি ব্যঞ্জনাত্মক শব্দের সাথে শুরু হওয়া শব্দের পূর্বে অনির্দিষ্ট নিবন্ধটি ব্যবহার করি (সমস্তগুলি অন্যান্য অক্ষর) "।
নোট করুন এর অর্থ একটি স্বরযুক্ত শব্দ , এবং স্বর বর্ণ নয় । উদাহরণস্বরূপ, "সম্মান" বা "উত্তরাধিকারী" এর মতো একটি নীরব "এইচ" দিয়ে শুরু হওয়া শব্দের স্বর হিসাবে বিবেচনা করা হয় তাই "একটি" দিয়ে এগিয়ে যাওয়া হয় - উদাহরণস্বরূপ, "এটি আপনার সাথে দেখা করার জন্য সম্মান"। ব্যঞ্জনবর্ণ শব্দের সাথে শুরু হওয়া শব্দের একটির সাথে উপসর্গ করা হয় - এজন্য আপনি "ব্যবহৃত গাড়ী" ব্যবহার না করে "একটি ব্যবহৃত গাড়ী" বলে থাকেন - কারণ "ব্যবহৃত" একটি "উহ" শব্দের পরিবর্তে "ইউস" শব্দ ধারণ করে।
সুতরাং, প্রোগ্রামার হিসাবে, এইগুলি অনুসরণ করার নিয়ম। কোন বর্ণের পরিবর্তে কোন শব্দটি কী দিয়ে শুরু হয় তা নির্ধারণের জন্য আপনার কেবল একটি উপায় তৈরি করতে হবে। আমি এর উদাহরণগুলি দেখেছি, যেমন জ্যামি সিরোভিচের পিএইচপি-তে এটির মতো:
function aOrAn($next_word)
{
$_an = array('hour', 'honest', 'heir', 'heirloom');
$_a = array('use', 'useless', 'user');
$_vowels = array('a','e','i','o','u');
$_endings = array('ly', 'ness', 'less', 'lessly', 'ing', 'ally', 'ially');
$_endings_regex = implode('|', $_endings);
$tmp = preg_match('#(.*?)(-| |$)#', $next_word, $captures);
$the_word = trim($captures[1]);
$_an_regex = implode('|', $_an);
if (preg_match("#($_an_regex)($_endings_regex)#i", $the_word)) {
return 'an';
}
$_a_regex = implode('|', $_a);
if (preg_match("#($_a_regex)($_endings_regex)#i", $the_word)) {
return 'a';
}
if (in_array(strtolower($the_word{0}), $_vowels)) {
return 'an';
}
return 'a';
}
নিয়মটি তৈরি করা এবং তার পরে ব্যতিক্রমগুলির একটি তালিকা তৈরি করা এবং এটি ব্যবহার করা সম্ভবত সবচেয়ে সহজ। আমি ভাবছি না যে সেখানে অনেকগুলি থাকবে।