2013-02-13 12 views
8

निम्न इनपुट ले लो है:एक नियमित अभिव्यक्ति के साथ दो बार एक ही शब्द मिलान, नहीं देखभाल क्या शब्द

foo.foo aefhiuafhiauefheiauh bar.bar jgoeiajgoieajogiae baz.foo ogiejaogijaeoigjea 

मैं x.x जहां x एक ही डॉट के दोनों ओर है मिलान करने के लिए चाहते हैं। इसलिए मैं x.y से मेल नहीं खाता हूं। उदाहरण के इनपुट के साथ तो, मैं मिलता था foo.foo, bar.bar और नहीं baz.foo

मुझे क्या करना चाहते हैं

(\w+)\.$1 

की तरह लेकिन निश्चित है कि काम नहीं करता है के बारे में कुछ है।

क्या यह किसी रेगेक्स के साथ किसी भी तरह से संभव है, या मुझे x.y से मेल खाना चाहिए और x और y की तुलना में कोड में होना चाहिए?

प्रश्न के लिए, मान लीजिए कि मैं जावास्क्रिप्ट रेगेक्स इंजन का उपयोग कर रहा हूं।

+1

आप की कोशिश की (\ w +) है \। \ 1 http://rubular.com/r/yXdlTXD6Uy – gosukiwi

उत्तर

16

इस प्रयास करें:

/(\w+)\.\1/g 

http://regexpal.com/ और काम करता है पर परीक्षण किया गया।

संपादित करें: जोड़ा गया वैश्विक संशोधक टॉमटॉम जैसे सही ढंग से सुझाव देता है।

+1

हाँ। ठीक काम करता है। आप एक सज्जन और विद्वान हैं। मैं 9 मिनट के लिए जवाब स्वीकार नहीं कर सकता लेकिन जब मैं कर सकता हूं, तो मैं करूँगा। – PhonicUK

+1

http://jsfiddle.net/dPv2q/ – jbabey

+0

http://www.regular-expressions.info/javascriptexample.html सभी मैचों को नहीं दिखाता है! – TomTom

4

वैश्विक के साथ होना चाहिए!

/(\w+)\.\1/g; 
संबंधित मुद्दे