regex - Match uneven number of escape symbols -


मुझे सी + + प्रीप्रोसेसर स्टेटमेंट मैच करना होगा I अब, प्रीप्रोसेसर स्टेटमेंट कई लाइनों को बढ़ा सकता है:

  #define foobar \ "कुछ शानदार"  

यह अंतिम बैकस्लैश बच सकता है ताकि निम्नलिखित परिणामों में दो अलग लाइनें:

  #define foobar \\ अब पूर्वप्रक्रमक में नहीं  

सवाल यह है कि मैं स्पष्ट रेखा निरंतरता को कुशलता से कैसे मेल कर सकता हूं। मेरे पास निम्न अभिव्यक्ति है जो मैं लगता है काम करता है असल में, यह जांच करता है कि बैकस्लैश की संख्या अजीब है या नहीं। क्या ये सही है? क्या इसे और अधिक कुशलता से किया जा सकता है?

  / [^ \\] # कुछ बचने वाला चरित्र नहीं है, इसके बाद ... (? & Lt; escape & gt; \\ *?) # ... किसी भी संख्या में पलायन, ... (? पी = एस्केप) # ... दो बार (यानी एक भी संख्या)। \\ \ n # अंत में, एक बैकस्लैश और न्यूलाइन / X  

(मैं पीपीआर का उपयोग कर रहा हूं तो पीसीई के नियम लागू होते हैं लेकिन मैं किसी भी रेगेक्स भाषा में जवाब की सराहना करता हूं।)

मुझे लगता है कि आप इसे जितना मुश्किल हो उतना मुश्किल बना रहे हैं। इसे आज़माएं:

  / (? & Lt;! \\) # एक बैकस्लैश (?: \\\\) से पहले नहीं * # शून्य या अधिक बच गए बैकस्लैश \\ \ n # एकल बैकस्लैश और लाइनफीड / एक्स  

Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -