2012-05-01 22 views
6

में विभिन्न केस नियमों को मिलाएं मेरे पास एक पर्ल चर, $word है। मैं इस तरह एक regex क्या करना चाहते हैं:एक पर्ल नियमित अभिव्यक्ति

$text =~ /ab($word)cd/; 

मैं regex केस-संवेदी ab और cd भागों के लिए होना चाहता हूँ, लेकिन नहीं जो कुछ $word में है के लिए। तो अगर $word='stack', मैं मैच के लिए इन दोनों चाहेगा:

abstackcd 
abStAcKcd 

आदि, लेकिन मैं मुझे लगता है मैं किसी तरह से लागू करने के लिए की तलाश में हूँ

Abstackcd 

मिलान करने के लिए नहीं करना चाहते हैं /i बस $word पर लेकिन शेष अभिव्यक्ति नहीं। क्या यह किया जा सकता है?

उत्तर

15

हां, (?i:$word) का उपयोग कर। अनुभाग "Extended Patterns" of perldoc perlre देखें। हो सकता है कि आप वास्तव में (?i:\Q$word\E) चाहते थे, जिस तरह से $word में स्वचालित रूप से किसी भी रेगेक्स मेटाएक्टेक्टर्स को उद्धृत किया जाएगा।

+0

+1 स्ट्रिंग को एक पैटर्न में कनवर्ट करने के निर्देशों के लिए +1। – ikegami

+0

महान जवाब, धन्यवाद! – itzy

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