Olá Jorge 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. Daí não poder usar o '.'
Em relação à sintaxe (porque demónios ainda ninguém terá normalizado isto?...) estou a testar em http://gskinner.com/RegExr/ que tem as opções básicas e nenhuma coisa esquisita (que me tenha apercebido). Usando a expressão: ^(P)(?!P)([BEFPMRZQ]{0-1})\b|^([BEFPMRZQ])(?<!P)(P)\b que é tão feia como a outra mas em que pelo menos o grupo [BEFPMRZQ] já não muda, está a funcionar. *Match:* P P+C PB PB+C BP BP+C *No match:* p //minúsculas PP //formato errado C+P //idem C+PB PBP BPB B //outras espécies E (eu sei que a expressão tem parêntesis a mais, mas vão ser precisos depois... em relação aos quantificadores, também tens razão o {1} é desnecessário, o {0,1} é igual ao ? 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. Assim é mais fácil para mim que sou sapateiro... já lá dizia o outro* ne sutor ultra crepidam* e depois é nisto que dá. nery 2012/5/31 Jorge Gustavo Rocha <[email protected]> > Olá Fernanda, > > 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. > > 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: > > Neste caso, a expressão pode ser escrita da seguinte forma: > > .?P.? > > 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. > > Tenta aplicar à tua sintaxe, sff. > > Ajuda? Sei lá... > > Um bom dia, > > Jorge > > Em 31-05-2012 11:47, Fernanda Nery escreveu: > >> Bom dia a todos >> >> Tenho uma dúvida com a sintaxe duma expressão regular... >> O contexto é o de uma carta de ocupação do solo em que: >> 1) a presença de espécies florestais está codificada com uma letra >> maiúscula pertencente a um dado domínio (e.g. P para pinheiro-bravo, E >> para eucalipto, etc). Admita-se que o domínio é [BEFPMRZQ] >> 2) se houver mais de 1 espécie, a codificação usa duas letras diferentes >> (correspondentes às espécies mais frequentes). >> >> Se eu quiser encontrar todas as ocorrências de pinheiro-bravo (sozinho, >> como espécie dominante ou como espécie dominada) posso usar a seguinte >> expressão: >> >> (\bP{1}[BEFMRZQ]{0,1}\b)|(\b[**BEFMRZQ]{1}P{1}\b) >> >> que funciona, mas é tão feia que obviamente só pode haver uma maneira >> mais elegante de fazer isto... >> >> No mínimo, usar sempre o mesmo domínio de valores válidos (em vez de >> andar a apagar o código da espécie que se está à procura em cada >> expressão...). >> >> Obrigada, >> nery >> >> >> P.S. A dúvida é mesmo sobre como fazer isto com uma expressão regular, >> não duma forma alternativa qq... >> >> >> >> ______________________________**_________________ >> Portugal mailing list >> [email protected] >> http://lists.osgeo.org/**mailman/listinfo/portugal<http://lists.osgeo.org/mailman/listinfo/portugal> >> > > > -- > Jorge Gustavo Rocha > Departamento de Informática > Universidade do Minho > 4710-057 Braga > Tel: +351 253604480 > Fax: +351 253604471 > Móvel: +351 910333888 > skype: nabocudnosor > > ______________________________**_________________ > Portugal mailing list > [email protected] > http://lists.osgeo.org/**mailman/listinfo/portugal<http://lists.osgeo.org/mailman/listinfo/portugal> >
_______________________________________________ Portugal mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/portugal
