मैं खोज और बदलने के लिए कई नियमित अभिव्यक्ति पर्ल का उपयोग कर रहा के साथ बदलें:पर्ल कमांड लाइन खोज और कई भाव
prompt> find "*.cpp" | xargs perl -i -pe 's/##(\W)/\1/g' -pe 's/(\W)##/\1/g'
syntax error at -e line 2, near "s/(\W)##/\1/g"
Execution of -e aborted due to compilation errors.
xargs: perl: exited with status 255; aborting
होने एकाधिक -e
में मान्य है: जब मैं निम्न आदेश निष्पादित, मैं कोई त्रुटि मिलती है पर्ल, तो यह क्यों काम नहीं कर रहा है? क्या इसका कोई उपाय है?
आप उन दो regexes को एक विकल्प के साथ प्रतिस्थापित कर सकते हैं: 's/## (? = \ W) | (? <= \ W) ## // g' – TLP
@TLP मैं पर्ल के लिए नोब हूं; कृपया आप समझा सकते हैं कि? = और? <= क्या यह संदर्भ है? –
वे चारों ओर घूमने वाले दावे हैं, आप उनके बारे में अधिक जानकारी [perldoc perlre] में देख सकते हैं (http://perldoc.perl.org/perlre.html#Look-Around-Assertions)। वे शून्य-चौड़ाई हैं, इसलिए वे केवल जांचते हैं, और हटाते नहीं हैं। – TLP