স্ট্রিংয়ের শুরুতে কোনও শব্দের সাথে মেলে আমি কীভাবে একটি নিয়মিত এক্সপ্রেশন তৈরি করব। আমরা stopএকটি স্ট্রিংয়ের শুরুতে মিলতে দেখছি এবং যে কোনও কিছুই এটি অনুসরণ করতে পারে।
উদাহরণস্বরূপ অভিব্যক্তিটি মিলবে:
stop
stop random
stopping
ধন্যবাদ
স্ট্রিংয়ের শুরুতে কোনও শব্দের সাথে মেলে আমি কীভাবে একটি নিয়মিত এক্সপ্রেশন তৈরি করব। আমরা stopএকটি স্ট্রিংয়ের শুরুতে মিলতে দেখছি এবং যে কোনও কিছুই এটি অনুসরণ করতে পারে।
উদাহরণস্বরূপ অভিব্যক্তিটি মিলবে:
stop
stop random
stopping
ধন্যবাদ
উত্তর:
আপনি যদি স্টপ ব্যবহারের সাথে শুরু করে কেবল লাইনগুলি মেলাতে চান
^stop
আপনি যদি শব্দটি দিয়ে শুরু করে লাইনগুলি মেলাতে চান তবে একটি স্পেসের পরে বন্ধ করুন
^stop\s
অথবা, আপনি যদি স্টপ শব্দের সাথে শুরু করে লাইনগুলি মেলাতে চান তবে একটি স্থান বা অন্য কোনও শব্দ অক্ষর অনুসরণ করে আপনি ব্যবহার করতে পারেন (আপনার রেজেক্স ফ্লেভার অনুমতি দিচ্ছে)
^stop\W
অন্যদিকে, অনুসরণ করা বেশিরভাগ রেজেেক্স স্বাদে স্ট্রিংয়ের শুরুতে একটি শব্দের সাথে মিলে যায় (এই স্বাদগুলিতে \ ডাব্লু এর বিপরীতে মেলে)
^\w
আপনার স্বাদে \ ডাব্লু শর্টকাট না থাকলে আপনি ব্যবহার করতে পারেন
^[a-zA-Z0-9]+
সাবধান থাকুন যে এই দ্বিতীয় প্রতিমাটি কেবল অক্ষর এবং সংখ্যার সাথে মিলবে, কোনও চিহ্ন নয়।
শর্টকাটগুলি কী অনুমোদিত এবং কীসের সাথে তারা মিলছে (এবং তারা কীভাবে ইউনিকোডের সাথে ডিল করে know
^stop\b, যা লাইনের শেষ সহ কোনও সীমানাকে অনুমতি দেবে
এটা চেষ্টা কর:
/^stop.*$/
ব্যাখ্যা:
যদি আপনি এই স্টপটি একটি সাদা স্থান অনুসরণ করে প্রয়োগ করতে চান তবে আপনি RegEx এর মতো পরিবর্তন করতে পারেন:
/^stop\s+.*$/
দ্রষ্টব্য: এছাড়াও মনে রাখবেন যে উপরের RegEx এর জন্য স্টপ শব্দটি কোনও স্থান অনুসরণ করা উচিত! সুতরাং এটি কেবল এমন একটি লাইনের সাথে মেলে না: থামুন
আপনি যদি কোনও শব্দের পরে কিছু মিলাতে চান তবে কেবল লাইনের শুরুতে আপনি এটি ব্যবহার করতে পারেন: \bstop.*\b- শব্দটি রেখার পরে followed
অথবা আপনি যদি স্ট্রিংয়ের সাথে শব্দটি মিলাতে চান\bstop[a-zA-Z]* - কেবল স্টপ দিয়ে শুরু হওয়া শব্দ
অথবা ^stop[a-zA-Z]*কেবলমাত্র শব্দের জন্য স্টপ দিয়ে রেখার সূচনা - প্রথম শব্দটি কেবলমাত্র
সম্পূর্ণ রেখা ^stop.*- কেবল স্ট্রিংয়ের প্রথম লাইন line
এবং আপনি যদি নতুন লাইনের ব্যবহার সহ স্টপ দিয়ে শুরু করে প্রতিটি স্ট্রিং মেলাতে চান: /^stop.*/s- স্টপ দিয়ে শুরু হওয়া মাল্টলাইন স্ট্রিং
@ শরদহোলানী লাইক দিয়েছেন। এটি " স্টপ " দিয়ে শুরু হওয়া প্রতিটি শব্দের সাথে মেলে না "
। এটি কেবল " থামানো " এর মতো লাইনের শুরুতে থাকলে । @ ওয়াকসো সঠিক উত্তর দিয়েছেন:
এই এক সামান্য , ভাল যদি আপনি কোন শব্দ "দিয়ে শুরু মেলে চান তাহলে স্টপ " এবং থেকে কিছুই কিন্তু চিঠি ধারণকারী A থেকে Z ।
\bstop[a-zA-Z]*\b
এটি সব মিলবে
বন্ধ (1)
এলোমেলো স্টপ (2)
থামছে (3)
থামাতে চাই (4)
দয়া করে থামুন (5)
কিন্তু
/^stop[a-zA-Z]*/
(3) পর্যন্ত কেবল (1) মিলবে তবে (4) এবং (5)
/stop([a-zA-Z])+/
যেকোন স্টপ শব্দের সাথে মেলে (থামানো, থামানো, থামানো ইত্যাদি)
তবে, আপনি যদি কেবল স্ট্রিংয়ের শুরুতে "স্টপ" মেলাতে চান
/^stop/
করবে: ডি
"থামুন", "থামুন", "থামুন" এবং "থামানো" ব্যবহার সহ "স্টপ" দিয়ে শুরু হওয়া কোনও কিছুর সাথে আপনি যদি মিল করতে চান:
^stop
আপনি যদি "থামি", "থামিয়ে দিন", তবে "থামানো" না এবং "থামানো" ব্যবহার না করে স্টপ শব্দের সাথে কিছু মিলিয়ে দেখতে চান :
^stop\W
আমি এই সমস্যাটির জন্য একটি সাধারণ নিয়মিত অভিব্যক্তি পদ্ধতির বিরুদ্ধে পরামর্শ দেব। এখানে অনেকগুলি শব্দের রয়েছে যা অন্য সম্পর্কিত নয় এমন শব্দের সাবস্ট্রিংস এবং আপনি সম্ভবত ইতিমধ্যে সরবরাহ করা সহজ সমাধানগুলিকে আরও বেশি বোঝার চেষ্টা করে নিজেকে ক্রেজি drive
প্রথমে পাঠ্য প্রক্রিয়া করার জন্য আপনি কমপক্ষে একটি নিষ্পাপ স্টেমিং অ্যালগরিদম (পোর্টার স্টেমার চেষ্টা করুন; বেশিরভাগ ভাষায় বিনামূল্যে কোড রয়েছে) চাইবেন want এই প্রক্রিয়াজাত পাঠ্য এবং প্রাক-প্রক্রিয়াজাত পাঠ্যকে দুটি পৃথক স্পেস-স্প্লিট অ্যারে রাখুন। নিশ্চিত হোন যে প্রতিটি অ বর্ণানুক্রমিক অক্ষরও এই অ্যারেটিতে নিজস্ব সূচি পেয়েছে। আপনি যে শব্দের তালিকা ফিল্টার করছেন সেগুলিও স্টেম করুন।
পরবর্তী পদক্ষেপটি হ'ল অ্যারে সূচকগুলি খুঁজে পাওয়া যাবে যা আপনার স্টেমড 'স্টপ' শব্দের তালিকার সাথে মেলে। অপসারণ না করা অ্যারে থেকে এগুলি সরিয়ে ফেলুন এবং তারপরে স্পেসে আবার যোগদান করুন।
এটি কেবল সামান্য জটিল, তবে এটি অনেক বেশি নির্ভরযোগ্য একটি পদ্ধতির। যদি আরও এনএলপি-ভিত্তিক পদ্ধতির মান সম্পর্কে আপনার সন্দেহ থাকে তবে আপনি ক্লাবটিক ভুল সম্পর্কে কিছু গবেষণা করতে চাইতে পারেন ।
আপনি যদি শব্দটি "স্টপ" দিয়ে শুরু করতে চান তবে আপনি নিম্নলিখিত প্যাটার্নটি ব্যবহার করতে পারেন। "^ থামুন। *"
এটি কোনও কিছুর পরে স্টপ দিয়ে শুরু হওয়া শব্দের সাথে মিলবে।
"^stop"?
code String line = "stopped"; String pattern = "^stop"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(line); System.out.println(m.find( )); //prints true System.out.println(line.matches(pattern)); //prints false