Visual Studio Regex '?' -


MSVS: कहां regex ?

मेरे पास कोड है जिसे मैं ' एमएसवीएस 2008 में एक नियमित अभिव्यक्ति के साथ मिलान करने की कोशिश कर रहा हूँ, लेकिन मैं इसके लिए regex का पता नहीं लगा सकता। क्लासिक उदाहरण लें:

  colou? R  

... जो एक नियमित अभिव्यक्ति है जो color या रंग । यह एमएसवीएस में न तो मेल खाता है। मदद फ़ाइल का जिक्र करते हुए, मुझे ? नहीं मिल सकता है।

यह एक बड़ा सौदा नहीं होगा - इसे वैकल्पिक रूप से अनुकरण किया जा सकता है:

  Colo (u |) r  

हालांकि, मुझे मिल जाता है "समूहित अभिव्यक्ति गायब है ')' '... जो ... यह नहीं है। अजीब तरह से, एमएसवीएस में ये वैकल्पिक समूह हैं (मुझे वाकई यकीन नहीं है कि क्यों ...) घुंघराले ब्रेसिज़ के साथ:

  colo {u}} r  

जो मुझे "पैटर्न में सिंटैक्स त्रुटि" की पूरी तरह से अलग त्रुटि देता है ..., जो मुझे एक नहीं दिख रहा है असल में, मैं एक कैसे करूँ? मेरा वास्तविक इनपुट रंग / रंग के रूप में सरल नहीं है, अन्यथा मैं इसे (color | color) के साथ नकली करता हूं। मुझे लगता है कि यह नकली हो सकता है, लेकिन यह इसके बारे में जाने के लिए एक मितव्ययी तरीका है।


तो फिर एकांतर का प्रयास करें ...

ठीक है, मैं अभी भी ऐसा नहीं कर सकता, यहां तक ​​कि बारीकियों के साथ भी मेरे पास निम्न दो regexes हैं:

 ^ [AZ] + \ t [0-9] + \ t [^ \ t] + ^ [AZ] + \ t [0- 9] + \ t [^ \ T] + \ t [^ \ t] + 

उन दो मैच लाइनों के दो सेट मैच, व्यक्तिगत रूप से, मेरे पाठ (पहले एक मैच लाइनों का हिस्सा है जो दूसरे से मेल खाता है।)

मेरा इनपुट मुद्रा की जानकारी की पंक्तियां है:

 BZD 084 बेलीज डॉलर सीएडी 124 कनाडाई डॉलर सीडीएफ 9 76 फ्रैंक कॉंगोलीस सीएई 947 विर यूरो (पूरक मुद्रा) एसएचएफ 756 स्विस फ़्रैंक सीएचडब्ल्यू 948 वर्ड फ़्रैंक (पूरक मुद्रा) सीएलएफ 9 090 यूनिडाड डे फेमेंटो (फंड कोड) 

(टैब्स, उदाहरण के लिए, WIR यूरो और पूरक के बीच मुद्रा), लेकिन वे हमेशा वहां नहीं होते।)

तार्किक रूप से, इसे गठबंधन के लिए पालन करना चाहिए

 ^ [AZ] + \ t [0-9] + \ t [ ^ \ T] + ^ [ए जेड] + \ t [0-9] + \ t [^ \ t] + \ t [^ \ t] + 

.. आपको मिलता है ... ^ [ AZ] + \ t [0-9] + \ t ([^ \ t] + | [^ \ t] + \ t [^ \ t] +) ... जो किसी तरह दूसरे अभिव्यक्ति के बराबर प्रतीत होता है पहला सेट।

हमारी बहुत ही इस बारे में कुछ समय पहले लिखा था। असल में, विजुअल स्टूडियो के रेगेक्स का कार्यान्वयन बहुत अमानक है और '? ' के साथ आमतौर पर क्या किया जाता है, इसका कोई सीधा तरीका नहीं है। आपको अपना {color | color} अभिव्यक्ति का उपयोग करना होगा।


Comments

Popular posts from this blog

c++ - Linux and clipboard -

Visual Studio 2005: How to speed up builds when a VSMDI is open? -

booting ubuntu from usb using virtualbox -