2012-07-19 16 views
22

वाक्यांश से पहले या उसके बाद कुछ भी नहीं, मुझे यकीन नहीं है कि यह वास्तव में संभव है या नहीं। डेटा के इस उदाहरण सेट पर विचार करें:सटीक वाक्यांश से मिलान करने के लिए रेगेक्स,

Mountain 
Big mountain 
Mountain of stone 
A mountain on a hill 

मैं माउंटेन से मेल खाना चाहता हूं। और कुछ नहीं। उस सेट के कोई अन्य भाग नहीं। बस सटीक रेखा, माउंटेन। मैंने जो कुछ भी कोशिश की है वह या तो माउंटेन के सभी उदाहरणों के लिए मेल खाती है या उनमें से कोई भी नहीं। बहुत से लोग एक सटीक शब्द या वाक्यांश से मेल खाना चाहते हैं, लेकिन मुझे लगता है कि केवल एक ही सटीक शब्द या वाक्यांश से मेल खाना चाहता है।

यदि यह एक वाक्यांश में विस्तारित किया जा सकता है जो सही होगा। मान लें:

Go for a hike 
Go for a hike, on a mountain. 
I want to go for a hike. 

जहां मैं केवल "एक वृद्धि के लिए जाओ" से मेल खाना चाहता हूं लेकिन इसमें कोई वाक्यांश नहीं है।

उत्तर

34

मिलान करने के लिए सटीक लाइन "माउंटेन" इस का उपयोग करें: /^Mountain$/

आप किस भाषा में काम कर रहे हैं, तो पैटर्न का सही स्वरूप को परिवर्तित करना पड़ सकता है उल्लेख नहीं किया है।

+11

'^' का अर्थ है: पंक्ति के आरंभ। '$' का अर्थ है: रेखा का अंत। – jahroy

+5

@jahroy: असल में, '^' का अर्थ इनपुट * की शुरुआत * है, और '$' का मतलब इनपुट * का अंत * है (या इनपुट के अंत में एक नई लाइन से पहले)। यह तभी होता है जब आप मल्टीलाइन मोड ('/^माउंटेन $/एम', या' "(? एम)^माउंटेन $" 'निर्दिष्ट करते हैं) जिसका मतलब है कि लाइन * की शुरुआत और अंत * है। –

+0

अच्छा बिंदु। मैं ओपी को प्रतीकों को समझाने की कोशिश कर रहा था। इस मामले में, इनपुट पाठ की एक पंक्ति होगी (अनुमानतः)। – jahroy

2

आप एक स्ट्रिंग जो एक से अधिक रेखाएं हों, है, तो निम्न दो नियमित अभिव्यक्ति मदद मिल सकती है:

\r\nWORD\r\n|^WORD\r\n|\r\WORD$|^WORD$ 

\r\nA\sPHRASE\r\n|^A\sPHRASE\r\n|\r\A\sPHRASE$|^A\sPHRASE$ 
+0

उपरोक्त व्यक्ति में एक अभिव्यक्ति थी जो मुझे आवश्यकतानुसार पूरी तरह से काम करती थी, लेकिन सुझाव के लिए धन्यवाद। अगर मुझे परेशानी है तो मैं इसे वाक्यांशों के लिए कोशिश करूंगा। – phobiac

संबंधित मुद्दे