में वैश्विक ध्वज को समझने में सहायता करें जहां तक मुझे लगता है कि वैश्विक वैश्विक/जी 'ध्वज में मुझे पता है कि खोज स्ट्रिंग में सभी मैचों को प्रतिस्थापित/वापस कर देगी। लेकिन मैं जिस तरह से यह वैश्विक चर के प्रति प्रतिक्रिया करता है, जबकि मिलान को समझने में सक्षम नहीं कर रहा हूँ किसी को समझा सकता है क्यों कि इन दो नमूना कार्यक्रमों के उत्पादन के बीच अंतर है:perl
संस्करण 1:
my $text = 'This is sample float value 3.2 ';
getFloat();
getFloat();
sub getFloat(){
if ($text =~ /([0-9]+?)(.?)([0-9]+?)/is){
print "matched> $1$2$3 ";
}
}
आउटपुट: मिलान किया> 3.2 मिलान किया> 3,2
संस्करण 2: (वैश्विक ध्वज के साथ)
my $text = 'This is sample float value 3.2 ';
getFloat();
getFloat();
sub getFloat(){
if ($text =~ /([0-9]+?)(.?)([0-9]+?)/gis){
print "matched> $1$2$3 ";
}
}
आउटपुट: मिलान किया> 3,2
, आउटपुट से देखा के रूप में वैश्विक झंडा मिलान के साथ केवल एक बार होता है। क्या कोई इस व्यवहार को समझा सकता है।
आपको [perldoc perlretut] (http://perldoc.perl.org/perlretut.html#Using-regular-expressions- इन-पर्ल) – TLP
आप क्या उम्मीद कर रहे हैं? आप इसे तब तक मिलान करना चाहते हैं जब तक यह मेल नहीं खाता? इसका मतलब यह नहीं होगा कि 'अगर' स्थिति हमेशा झूठी होगी। संक्षेप में, 'अगर (/.../ जी)' कोई मतलब नहीं है। – ikegami