जवाबों:
यदि आप स्टॉप यूज़ से शुरू होने वाली केवल लाइनों का मिलान करना चाहते हैं
^stop
यदि आप एक स्थान के बाद शब्द स्टॉप से शुरू होने वाली रेखाओं से मेल खाना चाहते हैं
^stop\s
या, यदि आप शब्द स्टॉप से शुरू होने वाली रेखाओं का मिलान करना चाहते हैं, लेकिन इसके बाद एक स्थान या कोई अन्य गैर-शब्द वाला चरित्र जिसे आप उपयोग कर सकते हैं (आपका रेगेक्स स्वाद अनुमति)
^stop\W
दूसरी ओर, जो सबसे रेगेक्स फ्लेवर पर एक स्ट्रिंग की शुरुआत में एक शब्द से मेल खाता है (इन फ्लेवर्स में \ w \ _ के विपरीत मेल खाता है)
^\w
यदि आपके स्वाद में \ w शॉर्टकट नहीं है, तो आप उपयोग कर सकते हैं
^[a-zA-Z0-9]+
सावधान रहें कि यह दूसरा मुहावरा केवल अक्षरों और संख्याओं से मेल खाएगा, कोई प्रतीक नहीं।
यह जानने के लिए कि किस शॉर्टकट की अनुमति है और वे वास्तव में क्या मेल खाते हैं (और वे यूनिकोड के साथ कैसे व्यवहार करते हैं) जानने के लिए अपने रेगेक्स फ्लेवर मैनुअल की जाँच करें।
^stop\b, जो किसी भी सीमा को समाप्त करने की अनुमति देगा, जिसमें लाइन का अंत भी शामिल है
इसे इस्तेमाल करे:
/^stop.*$/
स्पष्टीकरण:
यदि आप व्हॉट्सएप के बाद उस रोक को लागू करना चाहते हैं, तो आप RegEx को इस तरह संशोधित कर सकते हैं:
/^stop\s+.*$/
नोट: यह भी ध्यान रखें कि ऊपर दिए गए RegEx की आवश्यकता है कि स्टॉप शब्द का पालन एक स्थान से किया जाए! तो यह एक पंक्ति से मेल नहीं खाता है जिसमें केवल शामिल हैं: स्टॉप
यदि आप किसी शब्द को रोकना चाहते हैं तो न केवल उस पंक्ति के प्रारंभ में, जिसका आप उपयोग कर सकते हैं: \bstop.*\b- शब्द जिसके बाद रेखा आती है
या यदि आप स्ट्रिंग के उपयोग में शब्द से मेल खाना चाहते हैं \bstop[a-zA-Z]*- केवल स्टॉप से शुरू होने वाले शब्द
या ^stop[a-zA-Z]*केवल शब्द के लिए स्टॉप के साथ लाइनों की शुरुआत - पहला शब्द केवल
पूरी लाइन ^stop.*- केवल स्ट्रिंग की पहली पंक्ति
और यदि आप newlines उपयोग सहित स्टॉप के साथ शुरू होने वाले प्रत्येक स्ट्रिंग का मिलान करना चाहते हैं: /^stop.*/s- मल्टीलाइन स्ट्रिंग स्टॉप से शुरू हो रहा है
जैसे @ शरधोलनी ने कहा। यह " स्टॉप " से शुरू होने वाले हर शब्द से मेल नहीं खाएगा
। केवल अगर यह एक लाइन की शुरुआत में है जैसे " स्टॉप गोइंग "। @Waxo ने सही जवाब दिया:
यह एक थोड़ा बेहतर है, यदि आप " स्टॉप " के साथ शुरू होने वाले किसी भी शब्द से मेल खाना चाहते हैं और ए से जेड के अक्षरों के अलावा कुछ भी नहीं है ।
\bstop[a-zA-Z]*\b
यह सब मेल खाएगा
बंद करो (1)
यादृच्छिक रोकें (2)
रोक (3)
बंद करना चाहते हैं (4)
कृपया बंद करो (5)
परंतु
/^stop[a-zA-Z]*/
केवल (1) तक मैच होगा (3), लेकिन नहीं (4) और (5)
मैं इस समस्या के लिए एक सरल नियमित अभिव्यक्ति दृष्टिकोण के खिलाफ सलाह दूंगा। बहुत से ऐसे शब्द हैं जो अन्य असंबंधित शब्दों के अर्थ हैं, और आप शायद खुद को दी गई सरलता से हल किए गए समाधानों से आगे निकलने की कोशिश कर रहे हैं।
आप पाठ को संसाधित करने के लिए कम से कम एक भोली-भाली एल्गोरिथ्म चाहते हैं (पोर्टर स्टेमर का प्रयास करें; वहां अधिकांश भाषाओं में मुफ्त कोड उपलब्ध है)। इस प्रोसेस्ड टेक्स्ट और प्रीप्रोसेड टेक्स्ट को दो अलग-अलग स्पेस-स्प्लिट एरेज़ में रखें। सुनिश्चित करें कि प्रत्येक गैर-वर्णमाला वर्ण भी इस सरणी में अपना स्वयं का सूचकांक प्राप्त करता है। जो भी शब्दों की सूची आप फ़िल्टर कर रहे हैं, उन्हें भी स्टेम करें।
अगला कदम सरणी सूचकांकों को ढूंढना होगा जो आपके स्टैंमड 'स्टॉप' शब्दों की सूची से मेल खाते हैं। असंसाधित सरणी से उन लोगों को निकालें, और फिर रिक्त स्थान पर फिर से जुड़ जाएं।
यह केवल थोड़ा अधिक जटिल है, लेकिन बहुत अधिक विश्वसनीय होगा। यदि आपको अधिक एनएलपी-उन्मुख दृष्टिकोण के मूल्य पर कोई संदेह है, तो आप क्लैबेटिक गलतियों में कुछ शोध करना चाह सकते हैं ।
यदि आप चाहते हैं कि शब्द "स्टॉप" से शुरू हो, तो आप निम्न पैटर्न का उपयोग कर सकते हैं। "^ बंद। *"
यह किसी भी चीज़ के बाद स्टॉप से शुरू होने वाले शब्दों से मेल खाएगा।
"^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