2012-02-21 13 views
5

में पिछले चार मिलान नहीं मैं एक के रूप में '123 की ओर रुख' के अंतिम आवृत्ति को देखने के इस सरल regex है (मैं मुख्य शरीर के लिए एक और regex है) उदाहरण के विकल्पजावास्क्रिप्ट regex रूप

<tt ref="123">turn to 123</tt>... 

साथ 123 की ओर रुख ... ... लाइव फ़ॉर्म इनपुट में। हालांकि यह केवल तभी काम करता है जब संख्या 123 के बाद, चाहे वह कैरिज रिटर्न या एक दृश्य चरित्र हो, जिसे मैं मैच एंकर के $ अंत के बाद से याद नहीं कर सकता, स्पष्ट रूप से मेमोरी पैटर्न से पहले कोई अन्य चरित्र नहीं है संख्यात्मक अंकों के लिए।

<tt ref="12">turn to 12</tt>3 

यानी यह पिछले अंक पूरी तरह से पकड़ने के लिए विफल रहता है: बाद में एक चरित्र के बिना मैं इस परिणाम मिलता है। मैंने मेमोरी पैरों के अंदर $ एंकर डालने की कोशिश की है लेकिन कोई फर्क नहीं पड़ता।

+0

किस ब्राउज़र में? यह मेरे लिए, नोड, क्रोमियम और फ़ायरफ़ॉक्स के तहत काम करता है। –

+1

मैं इस व्यवहार को दोहराना नहीं कर सकता, यह regexr में काम करता है: http://regexr.com?3031a –

+0

मैं इसे पुन: उत्पन्न नहीं कर सकता। जावास्क्रिप्ट कंसोल में निम्नलिखित कोड चलाना '" foo 123 पर चालू करें "। जगह (/ ([^>]) (\ s + to \ s +) (\ d +) $/i," $ 1 $ 2 $ 3"); ' " foo 123 "पर लौटें। क्या आप समस्या पैदा कर रहे कोड को पोस्ट कर सकते हैं। –

उत्तर

2

मुझे यकीन है कि इस रेगेक्स में कुछ भी गलत नहीं है। आपको इनपुट currenttext इनपुट के रूप में गलत टेक्स्ट प्राप्त करना होगा। आप इस कोड को चलाने से पहले वर्तमान टेक्स्ट को चेक करके इसे सत्यापित कर सकते हैं (या तो console.log (currenttext) या अलर्ट (currenttext), या ऐसा कुछ)।

हालात के लिए बाहर देखने के लिए:

  • आप के साथ (शुरू, अंत) सबस्ट्रिंग (...) का उपयोग कर रहे बजाय (शुरू, अंत +1)?
  • क्या आप RegExp में एक अलग समूह के रूप में अंतिम चरित्र से मेल खाते हैं?
+1

मुझे अब पता नहीं है कि त्रुटि कहां या क्या कारण हो रहा था ... लेकिन यह अभी चला गया। सोचो कि यह कहना उचित है कि वैसे भी रेगेक्स के साथ कुछ भी गलत नहीं था। – Beeblbrox

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