<div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt; Lí o perlre neste ponto e fiquei mais confuso ainda... primeiro sobre o<br>&gt; código &quot;(?:SEEKING)?&quot;. De cara eu pensei que o &quot;SEEKING&quot; fosse uma palavra
<br>&gt; reservada, mas pelo jeito não é. Esta palavra está aí para nada ? Ou está<br>&gt; apenas tentando dar um match nesta palavra, que não existe ?<br><br>Sim, ele está tentando dar um match opcional na palavra SEEKING.
<br>A palavra precisa ser agrupada, pro quantificador ? operar sobre a<br>palavra inteira.</blockquote><div><br><span style="font-family: courier new,monospace;">Então eu posso ler o comando &quot;s/(?:SEEKING)?/PERLqny~%|fsyx%~tz&amp;/&quot; da seguinte maneira :
</span><br style="font-family: courier new,monospace;"><div style="direction: ltr; font-family: courier new,monospace;">substitua o agrupamento SEEKING ou qualquer outra coisa da variável $_ para PERLqny~%|fsyx%~tz&amp;. Eu poderia alterar isto para &quot;s//PERLqny~%|fsyx%~tz&amp;/&quot; com o mesmo resultado, mas sem esta pseudo confusão, certo ?
</div></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">O uso de (?:) é exatamente igual ao uso de ():<br><br>&lt;code&gt;<br>s/use\s+(Java|Python|PHP)/Perl/g;
<br>&lt;/code&gt;<br><br>Pode ser escrito assim:<br><br>&lt;code&gt;<br>s/use\s+(?:Java|Python|PHP)/Perl/g;<br>&lt;/code&gt;<br><br>Isso se vc não fizer questão de saber quem foi substituido.<br><br></blockquote></div><span style="font-family: courier new,monospace;">
Interessante, agora compreendi que neste caso não tenho as informações extras fornecidas pelo regex. O cara simplesmente executa e segue em frente.<br><br>Obrigado novamente... mais uma para a minha evolução no Perl.<br><br>
Solli M. Honório<br></span>