উত্তর:
মেটাচার্যাক্টর \b
হল ক্যারেট এবং ডলারের চিহ্নের মতো অ্যাঙ্কর। এটা একটা অবস্থান করে একটি বলা হয় এ ম্যাচ "শব্দ সীমানা" । এই ম্যাচটি শূন্য দৈর্ঘ্যের।
তিনটি পৃথক অবস্থান রয়েছে যা শব্দ সীমানা হিসাবে যোগ্য:
সোজা কথায়: রুপে নিয়মিত অভিব্যক্তি ব্যবহার করে আপনাকে "কেবলমাত্র পুরো শব্দ" অনুসন্ধান \b
করতে দেয় । একটি "শব্দের চরিত্র" এমন একটি চরিত্র যা শব্দ গঠনে ব্যবহৃত হতে পারে। সকল অক্ষর আছে যা নয় "শব্দ অক্ষর" হয় "অ-শব্দ অক্ষর" ।\bword\b
সমস্ত স্বাদে, অক্ষরগুলি [a-zA-Z0-9_]
শব্দের অক্ষর। এগুলি শর্ট-হ্যান্ড ক্যারেক্টার ক্লাসের সাথে মিলেছে \w
। স্বাদ তুলনায় শব্দ সীমার জন্য "ascii" দেখানো স্বাদগুলি কেবল এগুলিকে শব্দের অক্ষর হিসাবে স্বীকৃতি দেয়।
\w
সাধারণত "শব্দের চরিত্র" বলতে বোঝায় [A-Za-z0-9_]
। আন্ডারস্কোর এবং অঙ্কগুলি অন্তর্ভুক্ত করার বিষয়টি লক্ষ্য করুন।
\B
এর অবহেলিত সংস্করণ \b
। \B
যেখানে \b
না পজিশনে প্রতি পজিশনে মেলে । কার্যকরভাবে, \B
দুটি শব্দের অক্ষরের মধ্যে যে কোনও অবস্থানের পাশাপাশি দুটি শব্দহীন অক্ষরের মধ্যে যে কোনও অবস্থানে মিল রয়েছে।
\W
সংক্ষিপ্ত [^\w]
, এর অবহেলিত সংস্করণ \w
।
\w
একটি শব্দের চরিত্রের সাথে মেলে। \b
শূন্য-প্রস্থের ম্যাচটি এমন এক অবস্থানের অক্ষরের সাথে মেলে যা একদিকে শব্দের অক্ষর এবং অন্যদিকে শব্দের অক্ষর নয় not (শব্দের অক্ষর নয় এমন জিনিসগুলির উদাহরণগুলির মধ্যে শ্বেত স্পেস, স্ট্রিংয়ের শুরু এবং শেষ ইত্যাদি অন্তর্ভুক্ত)
\w
ম্যাচ a
, b
, c
, d
, e
, এবং f
এ "abc def"
\b
ম্যাচ সামনে (শূন্য-প্রস্থের) অবস্থান a
পর c
, আগে d
, এবং পরে f
মধ্যে"abc def"
\b
একটি শূন্য প্রস্থের দাবী; এটি কোনও চরিত্রের সাথে মেলে না , এটি একটি অবস্থানের সাথে মেলে ।
@ মাহেন্দ্র, আপনি সম্ভবত \W
(এর পরিবর্তে \w
) এবং এর মধ্যে পার্থক্য বুঝিয়েছিলেন \b
। যদি তা না হয় তবে আমি @ বোল্টক্লক এবং @jwismar এর সাথে একমত হব। না হলে পড়া চালিয়ে যান।
\W
কোনও শব্দহীন চরিত্রের সাথে মেলে এবং তাই শব্দের সীমানা মেলে এটি ব্যবহার করার চেষ্টা করা সহজ। সমস্যাটি হ'ল এটি কোনও লাইনের শুরু বা শেষের সাথে মেলে না। \b
এটি শব্দের সীমানা মেলাতে বেশি উপযুক্ত কারণ এটি কোনও লাইনের শুরু বা শেষের সাথেও মিলবে। মোটামুটি কথা বলতে (আরও অভিজ্ঞ ব্যবহারকারীরা আমাকে এখানে সংশোধন করতে \b
পারেন ) হিসাবে ভাবা যেতে পারে (\W|^|$)
। [সম্পাদনা করুন: নীচে @ ওমেগা যেমন উল্লেখ করেছেন, \b
শূন্য দৈর্ঘ্যের ম্যাচ তাই (\W|^|$)
কঠোরভাবে সঠিক নয়, তবে আশা করি ভিন্নটির ব্যাখ্যা দিতে সহায়তা করেছেন]
দ্রুত উদাহরণ: স্ট্রিংয়ের জন্য Hello World
, .+\W
মিলবে Hello_
(স্থানের সাথে) তবে মিলবে না World
। .+\b
উভয় Hello
এবং মিলবে World
।
\b
একই অর্থটির সাথে একমত নই (\W|^|$)
, যেহেতু (\W|^|$)
মিলে যাওয়া ফলাফলের মধ্যে অ-শব্দ অক্ষর অন্তর্ভুক্ত করা হবে। আপনি এই সত্যটি এখানে পরীক্ষা করতে পারেন => regexr.com/3qf98 ।
\b
আমার জন্য, অর্থ (?<=\W|^|$)
যখন কোনও প্যাটার্নের আগে ব্যবহৃত হয়েছিল এবং (?=\W|^|$)
যখন কোনও প্যাটার্ন পরে ব্যবহৃত হয়। আমি এখানে যা বলছি => regexr.com/3qf9h আপনি যাচাই করতে পারেন । ঠিক \b
এখানেই অ্যাঙ্করগুলির ফলাফলের সাথে তুলনা করুন => regexr.com/3qf9t
\b <= this is a word boundary.
শব্দের চরিত্র দ্বারা অনুসরণ করা তবে শব্দের চরিত্রের আগে নয় বা এমন একটি শব্দের চরিত্রের পরে রয়েছে তবে শব্দের চরিত্রের পরে নয় a
\w <= stands for "word character".
এটি সর্বদা ASCII টি অক্ষরের সাথে মেলে [A-Za-z0-9_]
আপনি মেলানোর চেষ্টা করছেন কিছু নির্দিষ্ট আছে?
নতুনদের জন্য বা কেবল আপনার ক্ষুধা ভিজিয়ে দেওয়ার জন্য কিছু দরকারী রেগেক্স ওয়েবসাইট।
আমি এটি একটি খুব দরকারী বই বলে মনে করেছি:
\w
এটি সর্বদা ASCII অক্ষরের সমতুল্য নয় [A-Za-z0-9_]
- এটি বর্ণানুক্রমিক ইউনিকোড কোড পয়েন্টগুলির সাথেও মিলবে এবং লোকেলটি যথাযথভাবে সেট করা থাকলে 8-বিট আইএসও-ল্যাটিন -1 বর্ণের সাথে মিলবে may ।
\w
হয় না একটা কথাও সীমানা, এটা আন্ডারস্কোর সহ যেকোন শব্দ চরিত্র, মেলে: [a-zA-Z0-9_]
। \b
এটি একটি শব্দের সীমানা, এটি একটি শব্দ এবং একটি অ-অক্ষরীয় অক্ষরের মধ্যে অবস্থানের সাথে মেলে: \W
বা [^\w]
।
যদিও এই বাস্তবায়নগুলি ভাষা থেকে আলাদা হয়ে যায়।
\w
একটি শব্দের চরিত্রকে\b
প্রতিনিধিত্ব করে , যখন কোনও শব্দের চরিত্র এবং একটি শব্দহীন চরিত্রের মধ্যে একটি শব্দের সীমানা উপস্থাপন করে । তারা একই জিনিস না।