2011-10-05 8 views
5

में पूरे शब्द से मेल खाता है मैं php (preg_match_all) में एक regexp चलाने की कोशिश कर रहा हूं जो स्ट्रिंग में कुछ पूरे शब्दों से मेल खाता है, लेकिन समस्या यह है कि यह उन शब्दों से भी मेल खाता है जिनमें परीक्षण किए गए शब्द का केवल एक हिस्सा होता है। यह भी एक बड़े regexp में एक उप-क्वेरी है, इसलिए strpos जैसे अन्य PHP फ़ंक्शन मुझे दुख की मदद नहीं करेंगे।पीसीआरई स्ट्रिंग

स्ट्रिंग: "I test a string"

शब्द मिलान करने के लिए: "testable", "string"

की कोशिश की regexp: /([testable|string]+)/

अपेक्षित परिणाम: "string" केवल!

परिणाम: "test", "a", "string"

+3

आपका रेगेक्स बिल्कुल '/ ([abegilnrst |] +) /' – NullUserException

+0

धन्यवाद के बराबर है, मुझे अभी हल हो गया है ... लेकिन आपने अपना जवाब क्यों हटा दिया?: डी – Inoryy

उत्तर

8

तुम सच में आप यह सुनिश्चित करना चाहते हैं केवल अपने शब्दों को प्राप्त करें और उन शब्दों में न हों, जिनमें आप शब्द सीमा एंकर का उपयोग कर सकते हैं:

/\b(testable|string)\b/ 

यह केवल एक शब्द सीमा से मेल खाता है जिसके बाद testable या string और फिर एक और शब्द सीमा होगी।

2

आप करते [] के साथ एक चरित्र वर्ग नहीं चाहता, तो आप सिर्फ शब्दों से मेल करना चाहते हैं:

/testable|string/

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

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