স্ট্রিংয়ের জন্য রেজেক্স রয়েছে?


114

স্ট্রিংয়ে একটি নির্দিষ্ট শব্দ রয়েছে (উদাহরণস্বরূপ 'টেস্ট') আছে কি না তা খতিয়ে দেখার জন্য রেজেক্স কী? আমি কিছু গুগলিং করেছি তবে এ জাতীয় পুনর্নির্মাণের সরাসরি উদাহরণ পাই না। এটি একটি বিল্ড স্ক্রিপ্টের জন্য তবে কোনও নির্দিষ্ট প্রোগ্রামিং ভাষার সাথে তার কোনও ফল নেই।

উত্তর:


78

নিয়মিত পিসিআরআই-স্টাইলের রেজেক্স স্বাদগুলি ধরে নেওয়া:

আপনি যদি একটি যেমন জন্য চেক করতে চান একক, পূর্ণ শব্দ , এটা \bTest\bকেস insensitivity জন্য উপযুক্ত পতাকার সঙ্গে, ইচ্ছা হলে এবং আপনার প্রোগ্রামিং ভাষার জন্য বিভেদক। \bএকটি "শব্দের সীমানা" উপস্থাপন করে, অর্থাত্ অক্ষরের মধ্যে একটি বিন্দু যেখানে কোনও শব্দ শুরু বা শেষ হিসাবে বিবেচনা করা যেতে পারে। উদাহরণস্বরূপ, যেহেতু স্পেসগুলি পৃথক শব্দের পৃথক করতে ব্যবহৃত হয়, তাই কোনও জায়গার উভয় পাশে শব্দের সীমা থাকবে।

আপনি যদি শব্দের অংশ হিসাবে এটি পরীক্ষা করতে চান তবে এটি ঠিক Testআবার কেসের সংবেদনশীলতার জন্য উপযুক্ত পতাকা সহ। নোট করুন যে সাধারণত, ডেডিকেটেড "সাবস্ট্রিং" পদ্ধতিগুলি এক্ষেত্রে দ্রুততর হয়, কারণ এটি রেজেক্সকে পার্স করার ওভারহেডটি সরিয়ে দেয়।


1
" \bএকটি" শব্দের সীমানা "উপস্থাপন করে, যা এমন দুটি শব্দ যা পৃথক করে (যেমন একটি স্থান)" \bএকটি জায়গার সাথে মেলে না; এটি এমন একটি দাবি যা অক্ষরের মধ্যে মেলে (বা বেশিরভাগ ক্ষেত্রে একটি লাইনের শুরু বা শেষে)।
স্ট্র্যাজার

1
@ স্ট্রেজার: হ্যাঁ, আপনি ঠিক বলেছেন - আমার ব্যাখ্যাটি কিছুটা অসম্পূর্ণ ছিল। আমি সম্পাদনা করব।
মাইকেল ম্যাডসেন

117

আপনার প্যাটার্নটি কেবল অ্যাঙ্কর করবেন না:

/Test/

উপরের রেজেক্সটি এর ভিতরে কোথাও খুঁজে পাওয়া আক্ষরিক স্ট্রিং "টেস্ট" পরীক্ষা করবে।


2
ধন্যবাদ, আমি জানতাম না যে এতটা সহজ! আমি অবশ্যই এটি আমার গুগলিংয়ে দেখিনি। আমার প্যাটার্নটি নোঙ্গর না দিয়ে কী বোঝাতে চাইছেন?
গুরুদীপ

7
আপনি কোনও স্ট্রিং যেমন / against টেস্ট / বা / টেস্ট $ / যথাক্রমে বা এমনকি / ^ টেস্ট $ / এর সাথে একেবারে মিলে যাওয়ার জন্য ম্যাচের জন্য একটি প্যাটার্ন অ্যাঙ্কর করতে পারেন an উদাহরণটি সুস্পষ্ট কারণ এটি সাম্যের তুলনা করার জন্য কোনও উপকার সরবরাহ করে না তবে উদাহরণস্বরূপ ফর্ম ফিল্ড বৈধকরণ করার সময় / ^ \ d + $ / এর মতো একটি রেজেক্সটি কেবল তখনই মিলবে যদি মাঠে কমপক্ষে একটি অঙ্ক থাকে এবং সংখ্যাসূচক ব্যতীত আর কিছুই থাকে না।
ডেভিড ক্লার্ক

-13

আমি কয়েক বছর দেরি করছি, তবে কেন এই হবে না?

[Tt][Ee][Ss][Tt]

4
এই উত্তরটি নিম্ন মানের পর্যালোচনা সারিতে পরিণত হয়েছে, সম্ভবত আপনি কোডটি ব্যাখ্যা না করায়। আপনি যদি এটি ব্যাখ্যা করেন (আপনার উত্তরে), আপনি আরও বেশি কিছু পাওয়ার সম্ভাবনা পাবেন the এবং প্রশ্নকারী আসলে কিছু শিখেন!
দ্য হাটের সাথে গাই

6
এটি খুব সাধারণযোগ্য নয় - আপনি যে শব্দটি অনুসন্ধান করতে চেয়েছিলেন তা কোনও ব্যবহারকারীর কাছ থেকে এসেছে কিনা তা কল্পনা করুন। আপনাকে [Aa]প্রতিটি চিঠির জন্য প্যাটার্ন তৈরি করতে হবে এবং এটি বেশ কুৎসিত দ্রুত পাবে।
প্লাটিনাম আউজুর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.