OpenOffice Calc regex retorna valor errado - o que há de errado com o meu regex?

2

Eu tenho uma coluna de texto com valores concatenados pelo meu banco, como em uma declaração mensal típica.

Aqui está um exemplo (coluna A240):

OCT 26 BALANCEPROTECTOR PREMIUM $10.05

Estou tentando definir o valor de uma coluna separada como o valor numérico do valor em dólar. Aqui está a fórmula atual atualmente, configurada na coluna G240:

=SEARCH("\$[0-9]{1,6}\.[0-9]{2}";CLEAN(A240))

Espero ver 10.05 no resultado, mas o que aparece lá é $ 33.00 (a coluna está definida como moeda). O valor bruto que entra nele é 33, mostrado se eu atingir a formatação padrão.

Há algo de errado com meu regex ou estou perdendo algumas opções? Eu tentei mostrar = CLEAN (A240) e tudo parece que faz em A240, então eu sei que a fórmula está recebendo todos os dados necessários.

Quaisquer pensamentos ou melhorias?

Obrigado!

ATUALIZAÇÃO:

Eu percebi que a função de pesquisa retorna a posição da regex, não a string. Depois de ler isto, atualizei a fórmula e agora funciona como esperado:

=VALUE(MID(CLEAN(A240);SEARCH("\$[0-9]{1,6}\.[0-9]{2}";CLEAN(A240))+1;LEN("\$[0-9]{1,6}\.[0-9]{2}")))
    
por user209448 22.03.2013 / 05:45

2 respostas

2

Com um pouco de ajuda de pnuts me apontando na direção certa, descobri a maneira do OpenOffice Calc de fazê-lo sem o REGEX:

=RIGHT(A240;LEN(A240)-SEARCH("$";A240))

Observe o uso de ponto-e-vírgula e o parêntese ausente.

Usando o REGEX resolveu meu problema em março, resolvi assim:

=VALUE(MID(CLEAN(A240);SEARCH("\$[0-9]{1,6}\.[0-9]{2}";CLEAN(A240))+1;LEN("\$[0-9]{1,6}\.[0-9]{2}")))
    
por 08.07.2013 / 11:16
0

Use aspas simples. Isso funcionou com egrep , mas aspas duplas não funcionaram com egrep .

    
por 22.03.2013 / 06:31