13
दो मुद्रित संख्याएं अलग क्यों हैं?खाली स्ट्रिंग के साथ प्रतिस्थापन: अप्रत्याशित परिणाम
#!/usr/bin/env perl
use warnings;
use 5.10.1;
my $sep = '';
my $number = 110110110110111;
$number =~ s/(\d)(?=(?:\d{3})+\b)/$1$sep/g;
say "A: <$number>";
$number =~ s/\Q$sep\E//g;
say "B: <$number>";
आउटपुट:
A: <110110110110111>
B: <11111111111>
ध्यान दें कि इससे पता चलता है कि \ Q \ E और इंटरपोलेशन स्ट्रिंग ऑपरेशंस हैं, रेगेक्स उचित का हिस्सा नहीं है, क्योंकि वे सभी "रिक्त स्ट्रिंग के पैटर्न का मूल्यांकन" परीक्षण से पहले हल किए जाते हैं। यदि आप वास्तव में इस गलतफहमी को रोकना चाहते हैं और आपके रेगेक्स में केवल इंटरपोलेटेड बिट्स शामिल हैं जो सभी खाली हो सकते हैं, तो '(? #)' में फेंक दें जिसका मिलान करने पर कोई प्रभाव नहीं पड़ता है लेकिन पैटर्न को खाली नहीं करता है। – ysth