[Portugal] Dúvida sobre expressão regular (RegEx)

Fernanda Nery nery.mail gmail.com
Quinta-Feira, 31 de Maio de 2012 - 10:10:36 PDT


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 <jgr at di.uminho.pt>

> 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
>> Portugal at lists.osgeo.org
>> 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
> Portugal at lists.osgeo.org
> http://lists.osgeo.org/**mailman/listinfo/portugal<http://lists.osgeo.org/mailman/listinfo/portugal>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/portugal/attachments/20120531/b05ed9c7/attachment-0001.html>


More information about the Portugal mailing list