Just remove the "grep !/^\s*$/," statement will give you what you want. :-)<br><br><br><div class="gmail_quote">2009/10/23 tiger peng <span dir="ltr"><<a href="mailto:tigerpeng2001@yahoo.com">tigerpeng2001@yahoo.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div style="font-family: Courier New,courier,monaco,monospace,sans-serif; font-size: 10pt;">
<div><font face="arial, helvetica, sans-serif">Here is what I want:</font></div>
<div><font face="Arial"></font> </div>
<div>:-) perl -MData::Dumper -MRegexp::Common -le '$a="15678.91 ml; .121 0.12312 ><br>$VAR1 = [<br> '15678.91',<br> ' ml; ',<br> '.121',<br> ' ',<br>
'0.12312',<br> ' ',<br> '12313.',<br> ' r',<br> '45.12',<br> ' '<br> ];<br><br><br></div>
<div style="font-family: Courier New,courier,monaco,monospace,sans-serif; font-size: 10pt;"><br>
<div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font size="2" face="Tahoma">
<hr size="1">
<b><span style="font-weight: bold;">From:</span></b> tiger peng <<a href="mailto:tigerpeng2001@yahoo.com" target="_blank">tigerpeng2001@yahoo.com</a>><div class="im"><br><b><span style="font-weight: bold;">To:</span></b> <a href="mailto:china-pm@pm.org" target="_blank">china-pm@pm.org</a><br>
</div><b><span style="font-weight: bold;">Sent:</span></b> Thu, October 22, 2009 9:59:15 PM<div><div></div><div class="h5"><br><b><span style="font-weight: bold;">Subject:</span></b> Re: [PerlChina] split function and zero-width seperator<br>
</div></div></font><div><div></div><div class="h5"><br>
<div style="font-family: Courier New,courier,monaco,monospace,sans-serif; font-size: 10pt;">
<div>Thank. I thought the seperator would lost. I just read perldoc -f split, which says, "If the PATTERN contains parentheses, additional list elements are created from each matching substring in the delimiter."<br>
</div>
<div style="font-family: Courier New,courier,monaco,monospace,sans-serif; font-size: 10pt;"><br>
<div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font size="2" face="Tahoma">
<hr size="1">
<b><span style="font-weight: bold;">From:</span></b> cnhack TNT <<a href="mailto:cnhacktnt@gmail.com" target="_blank">cnhacktnt@gmail.com</a>><br><b><span style="font-weight: bold;">To:</span></b> <a href="mailto:china-pm@pm.org" target="_blank">china-pm@pm.org</a><br>
<b><span style="font-weight: bold;">Sent:</span></b> Thu, October 22, 2009 7:57:37 PM<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [PerlChina] split function and zero-width seperator<br></font><br>perl -MData::Dumper -le '$a="15678.91 ml; r45.12 "; @a=grep !/^\s*$/, split /([\d\.]+)/, $a; print Dumper \@a' <br>
<br>the regex pattern for split don't need to be that complicated. :-)<br><br><br><br>
<div class="gmail_quote">2009/10/23 tiger peng <span dir="ltr"><<a href="mailto:tigerpeng2001@yahoo.com" rel="nofollow" target="_blank">tigerpeng2001@yahoo.com</a>></span><br>
<blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">
<div>
<div style="font-family: Courier New,courier,monaco,monospace,sans-serif; font-size: 10pt;">
<div><font face="arial, helvetica, sans-serif">Hello everyone,</font></div>
<div><font face="arial, helvetica, sans-serif"></font> </div>
<div><span style="color: black; font-size: 10pt;"><font face="arial, helvetica, sans-serif">I am trying to isolate numbers from string, manipulate the numbers then put them back to original positions in the string. When I try to use zero-width separator, the split function looks weird, it generated much more elements than I expect.</font></span></div>
<div><span style="color: black; font-size: 10pt;"><font face="arial, helvetica, sans-serif"></font></span> </div>
<div><span style="color: black; font-size: 10pt;"><font face="arial, helvetica, sans-serif">Are there any mistakes? Why the split behaviors like this? (The regexp looks right when I used it s///)</font></span></div>
<div><span style="color: black; font-size: 10pt;"><font face="Arial"></font></span> </div>
<div><span style="color: black; font-size: 10pt;"><font face="Arial">Could anyone help?</font></span></div>
<div><span style="color: black; font-size: 10pt;"><font face="Arial"></font></span> </div>
<div><span style="color: black; font-size: 10pt;"><font face="Arial">Thanks,</font></span></div>
<div><span style="color: black; font-size: 10pt;"><font face="Arial">Tiger</font></span></div>
<div> </div>
<div>#build the seperator</div>
<div>:-) perl -le '$a = "15678.91 ml; r45.12 ";</div>
<div> $a =~ s/((?!(\d|\.))(?<=(\d|\.)))|((?=(\d|\.))(?<!(\d|\.)))/|/g;</div>
<div> print $a'<br>|15678.91| ml; r|45.12|</div>
<div> </div>
<div>#use the seperator in split</div>
<div>:-) perl -MData::Dumper -le '$a = "15678.91 ml; r45.12 ";</div>
<div> @a = split /((?!(\d|\.))(?<=(\d|\.)))|((?=(\d|\.))(?<!(\d|\.)))/, $a;</div>
<div> print Dumper(@a)'<br>$VAR1 = '15678.91';<br>$VAR2 = '';<br>$VAR3 = undef;<br>$VAR4 = '1';<br>$VAR5 = undef;<br>$VAR6 = undef;<br>$VAR7 = undef;<br>$VAR8 = ' ml; r';<br>
$VAR9 = undef;<br>$VAR10 = undef;<br>$VAR11 = undef;<br>$VAR12 = '';<br>$VAR13 = '4';<br>$VAR14 = undef;<br>$VAR15 = '45.12';<br>$VAR16 = '';<br>$VAR17 = undef;<br>$VAR18 = '2';<br>
$VAR19 = undef;<br>$VAR20 = undef;<br>$VAR21 = undef;<br>$VAR22 = ' ';<br></div></div></div><br>_______________________________________________<br>China-pm mailing list<br><a href="mailto:China-pm@pm.org" rel="nofollow" target="_blank">China-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/china-pm" target="_blank">http://mail.pm.org/mailman/listinfo/china-pm</a><br></blockquote></div><br></div></div></div></div></div></div></div></div></div><br>_______________________________________________<br>
China-pm mailing list<br>
<a href="mailto:China-pm@pm.org">China-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/china-pm" target="_blank">http://mail.pm.org/mailman/listinfo/china-pm</a><br></blockquote></div><br>