Monster perl regex -


मैं इस तरह तार बदलने की कोशिश कर रहा हूं:

  & lt; a href = ' ../Example/case23.html'><img src = 'Blablabla.jpg'  

इसे करने के लिए:

  & lt; a href = '../Example/case23.html'><img src =' & lt?? Php imgname ('case23'); ? & Gt; '  

और मुझे एक नियमित अभिव्यक्ति का यह राक्षस मिला है:

  ढूंढें -प्रकार F | Xargs perl -pi -e \ 's / & lt; a href = \' (। \। \। \ / उदाहरण \ /) (case \ d \ d) (। Html। '& Gt; & lt; img src = \ ') * \' / \ 1 \ 2 \ 3 & lt; \? Php imgname \ (\ '\ 2 \'); \? & Gt; \ '/'  

लेकिन यह काम नहीं कर रहा है। वास्तव में, मुझे लगता है कि यह बाश के साथ एक समस्या है, जो संभवत: शीघ्रता से नज़रअंदाज़ किया जा सकता है।

  r: पंक्ति 4: अनपेक्षित टोकन के पास सिंटैक्स त्रुटि `('r: पंक्ति 4:`' S / & lt; a href = \ '(। \। \। \। / उदाहरण \ /) (केस \ d \ d) (। Html।' 'Gt; & lt; img src = \') * \ '/ 1 \ 2 \ 3 & lt; \? Php imgname \ (\ '\ 2 \'); \? & Gt; \ '/' ' 

लेकिन अगर आप नियमित रूप से मेरी मदद करना चाहते हैं अभिव्यक्ति जो शांत होगी, भी!

आपको मछली को कैसे पढ़ा:

 s / ... / ... /  

s ऑपरेटर के लिए / के अलावा एक विभाजक का उपयोग करें क्योंकि / अभिव्यक्ति में पहले से ही होता है।

  s {...} {...}  

बैकस्लैश पर उद्धृत करें, पसंद करें [ ] अधिक क्योंकि हम बाद में शेलक्वाट करेंगे। चलो केवल आवश्यक या महत्वपूर्ण भागों के लिए बैकस्लैश रखें, अर्थात् यहां अंक वर्ण वर्ग।

  S {& lt; a href = '[।] [।] / उदाहरण / मामले (\ d \ d) [।] Html' & gt; ...   

केवल चर भाग को कैप्चर करें। स्ट्रिंग को फिर से इकट्ठा करने की कोई ज़रूरत नहीं है यदि अधिकांश भाग स्थिर है।

  s {& lt; a href = '[।] [।] / उदाहरण / मामले (\ d \ d) [ ] Html '& gt; & lt; img src =' [^ '] *'} {& lt; a href = '.. / उदाहरण / मामले $ 1.html' & gt; & lt; img src = '& lt?? Php imgname (' मामले $ 1 '); ? & Gt; '}  

बैकरेफरेंस को दर्शाने के लिए $ 1 के बजाय \ 1 का उपयोग करें [^ '] * का मतलब अगले ' तक सब कुछ है।

अब पर्ल के तर्क के रूप में सेवा करने के लिए -e विकल्प, इस कार्यक्रम को बंद करने की आवश्यकता है। निम्न सहायक प्रोग्राम को नियोजित करें, आप इसके बजाय उपनाम या शेल फ़ंक्शन का उपयोग भी कर सकते हैं:

  & gt; बिल्ली `जो कंकलेट '#! / Usr / bin / env perl स्ट्रिंग :: शेल क्वाट क्यू (शेल_कोट) का उपयोग करते हैं; Undef $ / / प्रिंट शेल_कोट & lt; & gt;  

इसे चलाएं और प्रोग्राम बॉडी पेस्ट करें, Ctrl + d के साथ इनपुट समाप्त करें, आपको प्राप्त होता है:

  's {& lt; a href =' \ '' [।] [।] / उदाहरण / मामले (\ d \ d) [।] Html '\' '& gt; & lt; img src =' \ ' [^ '\' '] *' \ ''} {& Lt; a href = '\' "../ उदाहरण / मामले $ 1.html '\' '& gt; & lt; img src =' \ '' & lt ;? Php imgname ('\' केस $ 1 '\' '); ? & Gt; '\' '}'  

इसे शेल पाइपलाइन के साथ रखें।

  ढूंढें -प्रकार F | Xargs perl -pi -e 's {& lt; a href =' \ '' [।] [।] / उदाहरण / मामले (\ d \ d) [।] Html '\' '& gt; & lt; img src =' \ '' [^ '\' '] *' \ ''} {& Lt; a href = '\' "../ उदाहरण / मामले $ 1.html '\' '& gt; & lt; img src =' \ '' & Lt;? Php imgname ('\' केस $ 1 '\' '); ? & Gt; '\' '}'  

Comments

Popular posts from this blog

c# - sqlDecimal to decimal clr stored procedure Unable to cast object of type 'System.Data.SqlTypes.SqlDecimal' to type 'System.IConvertible' -

Calling GetGUIThreadInfo from Outlook VBA -

Obfuscating Python code? -