में केस आकार के बावजूद दो तारों की तुलना करें, चाहे केस आकार के बावजूद दो तारों की तुलना करने के लिए वैसे भी है? उदाहरणपर्ल
"steve" eq "STevE" <----- these would match
"SHOE" eq "shoe"
के लिए आप चित्र प्राप्त
में केस आकार के बावजूद दो तारों की तुलना करें, चाहे केस आकार के बावजूद दो तारों की तुलना करने के लिए वैसे भी है? उदाहरणपर्ल
"steve" eq "STevE" <----- these would match
"SHOE" eq "shoe"
के लिए आप चित्र प्राप्त
हाँ - uc()
(अपर-केस समारोह; http://perldoc.perl.org/functions/uc.html देखें) का उपयोग
$ perl -e 'print uc("steve") eq uc("STevE"); print "\n";'
1
$ perl -e 'print uc("SHOE") eq uc("shoe"); print "\n";'
1
$ perl5.8 -e 'print uc("SHOE") eq uc("shoe1"); print "\n";'
$
आप स्पष्ट रूप से lc()
रूप में अच्छी तरह उपयोग कर सकते हैं।
यदि आप वास्तविक "ईक" ऑपरेटर को असंवेदनशील होना चाहते हैं, तो अधिभार का उपयोग करना संभव हो सकता है लेकिन मुझे नहीं लगता कि आप यही पूछ रहे हैं - अगर ऐसा है तो कृपया अपने प्रश्न को स्पष्ट करें। न ही यह एक अच्छा विचार है यदि आप इसे चाहते हैं, आईएमएचओ - बहुत नाजुक और बग का पता लगाने और डीबग करने के लिए बड़ी मुश्किल हो जाती है। "I"
तरीकों में से एक जोड़े को ऐसा करने के लिए
इसके अलावा, यह अपने विशिष्ट मामले में जहां आप बस समानता चाहते में एक overkill है, लेकिन पर्ल नियमित अभिव्यक्ति भी मामले स्वतंत्र modifyer है:
lc "steve" eq lc "STevE";
lc
या uc
ऑपरेटर, जो दोनों तार कम या क्रमशः अपर केस में धर्मान्तरित का उपयोग करें
एक साधारण regex बस के रूप में अच्छा प्रदर्शन करेंगे: perldoc (http://perldoc.perl.org/functions/fc.html), यह उपयोग करने के लिए बेहतर है के अनुसार
'steve' =~ /^STevE$/i;
इन महान काम – shinjuo
स्मार्टमैच दस्तावेज़ों को दोबारा पढ़ें; कि आखिरी वाला किसी भी ~~ रेगेक्स मामले में पड़ रहा है जिसका अर्थ है कि बाएं साइट को स्ट्रिंग और दाएं का उपयोग करके मिलान किया गया है। 5.10.1 पर, ऐसा लगता है कि "(? I-xsm: steve)" = ~/STevE/i' जब मैं उम्मीद करता था '($ _ = ~/स्टीव/i) = ~/STevE/i ', लेकिन न तो यहां उचित है। – ysth
एनबी 5.10.0 पर स्मार्टमैच में त्रुटियों को डिजाइन किया गया है (जो 5.10.1 में तय किए गए थे) और इसका उपयोग नहीं किया जाना चाहिए। – ysth
fc("steve") eq fc("STevE")
पहले उपयोग करने से पहले इस लाइन को जोड़ने के लिए मत भूलना fc
की:
use feature 'fc';
अच्छा बिंदु। असल में 'एफसी' 'uc' /' lc' के समान है लेकिन गैर-ASCII वर्णों को संभालने में सक्षम है। – PerlDuck
'uc' और' lc' यूनिकोड वर्णों के साथ भी अच्छी तरह से काम करता है। –
यह काम करता है महान – shinjuo