Olá Jorge<br><br>Expliquei-me mal no 1º mail ... quando digo "domínio" não quero dizer que a informação já esteja numa base de dados ou que já tenha sido validado um qq domínio fechado de símbolos... neste momento é mesmo só localizar padrões conformes ao que descrevi num ficheiro de texto. <br>
Daí não poder usar o '.'<br><br>Em relação à sintaxe (porque demónios ainda ninguém terá normalizado isto?...) estou a testar em <a href="http://gskinner.com/RegExr/">http://gskinner.com/RegExr/</a> que tem as opções básicas e nenhuma coisa esquisita (que me tenha apercebido).<br>
<br>Usando a expressão:<br><br>^(P)(?!P)([BEFPMRZQ]{0-1})\b|^([BEFPMRZQ])(?<!P)(P)\b<br><br>que é tão feia como a outra mas em que pelo menos o grupo [BEFPMRZQ] já não muda, está a funcionar. <br><br><i>Match:</i><br><span style="background-color:rgb(51,255,51)">P</span><br>
<span style="background-color:rgb(51,255,51)">P</span>+C<br><span style="background-color:rgb(51,255,51)">PB</span><br><span style="background-color:rgb(51,255,51)">PB</span>+C<br><span style="background-color:rgb(51,255,51)">BP</span><br>
<span style="background-color:rgb(51,255,51)">BP</span>+C<br><br><i>No match:</i><br>p                 //minúsculas<br>PP               //formato errado<br>C+P             //idem<br>C+PB<br>PBP<br>BPB<br>B                  //outras espécies<br>
E<br><br>(eu sei que a expressão tem parêntesis a mais, mas vão ser precisos 
depois... <br>em relação aos quantificadores, também tens razão o {1} é 
desnecessário, o {0,1} é igual ao ?<br>mas infelizmente eu só pego 
nestas coisas de ano a ano e se não escrevo tudo depois já não me lembro da sintaxe.<br>Assim é
 mais fácil para mim que sou sapateiro...  já lá dizia o outro<i> ne sutor ultra crepidam</i> e depois é nisto que dá.<br><br>nery<br><br><br><div class="gmail_quote">2012/5/31 Jorge Gustavo Rocha <span dir="ltr"><<a href="mailto:jgr@di.uminho.pt" target="_blank">jgr@di.uminho.pt</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Olá Fernanda,<br>
<br>
1) Não sei que raio de sintaxe usas, mas parece-me que, qualquer que seja a sintaxe, escrever "P{1}" ou escrever "P" é exatamente a mesma coisa, não é? Se só queres uma ocorrência, basta escrever o símbolo terminal, sem indicação do número de ocorrências.<br>

<br>
2) Para além disso, o que queres, de facto, é qualquer ocorrência, desde que tenha um "P" lá pelo meio, né? Se dizes que queres apanhar os "P" sozinho, como espécie dominante ou dominada, isso significa um P em qualquer sítio. Se assim é, eu escreveria a ER como sendo formada por:<br>

<br>
Neste caso, a expressão pode ser escrita da seguinte forma:<br>
<br>
.?P.?<br>
<br>
em que '.' significa um qualquer símbolo, e '?' significa opcional. Como estás à procura num domínio fechado de símbolos, não precisas de forçar que os símbolos sejam [BEFMRZQ]. Qualquer símbolo serve. Por isso, sugiro que uses o '.' ou algo que possa ser substituído por qualquer símbolo.<br>

<br>
Tenta aplicar à tua sintaxe, sff.<br>
<br>
Ajuda? Sei lá...<br>
<br>
Um bom dia,<br>
<br>
Jorge<br>
<br>
Em 31-05-2012 11:47, Fernanda Nery escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Bom dia a todos<br>
<br>
Tenho uma dúvida com a sintaxe duma expressão regular...<br>
O contexto é o de uma carta de ocupação do solo em que:<br>
1) a presença de espécies florestais está codificada com uma letra<br>
maiúscula pertencente a um dado domínio (e.g. P para pinheiro-bravo, E<br>
para eucalipto, etc). Admita-se que o domínio é [BEFPMRZQ]<br>
2) se houver mais de 1 espécie, a codificação usa duas letras diferentes<br>
(correspondentes às espécies mais frequentes).<br>
<br>
Se eu quiser encontrar todas as ocorrências de pinheiro-bravo (sozinho,<br>
como espécie dominante ou como espécie dominada) posso usar a seguinte<br>
expressão:<br>
<br>
(\bP{1}[BEFMRZQ]{0,1}\b)|(\b[<u></u>BEFMRZQ]{1}P{1}\b)<br>
<br>
que funciona, mas é tão feia que obviamente só pode haver uma maneira<br>
mais elegante de fazer isto...<br>
<br>
No mínimo, usar sempre o mesmo domínio de valores válidos (em vez de<br>
andar a apagar o código da espécie que se está à procura em cada<br>
expressão...).<br>
<br>
Obrigada,<br>
nery<br>
<br>
<br>
P.S. A dúvida é mesmo sobre como fazer isto com uma expressão regular,<br>
não duma forma alternativa qq...<br>
<br>
<br>
<br></div></div><div class="im">
______________________________<u></u>_________________<br>
Portugal mailing list<br>
<a href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/portugal</a><br>
</div></blockquote><span class="HOEnZb"><font color="#888888">
<br>
<br>
-- <br>
Jorge Gustavo Rocha<br>
Departamento de Informática<br>
Universidade do Minho<br>
4710-057 Braga<br>
Tel: +351 253604480<br>
Fax: +351 253604471<br>
Móvel: +351 910333888<br>
skype: nabocudnosor</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<br>
Portugal mailing list<br>
<a href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/portugal" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/portugal</a><br>
</div></div></blockquote></div><br>