Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Usar expressão regular para dividir string

Tenho uma string contendo um calculo matemático

"2.4446506362607E+29+3.7298826723704E+29"

Gostaria de selecionar o + para separar e ficara "2.4446506362607E+29" e "3.7298826723704E+29". Qual seria a expressão regular para selecionar o + correto dentro do calculo?

Tentei usar (?:\d)([+])(?:\d) mas não seleciona apenas o +

1 resposta
solução

Opa Mayki, tudo bem com você?

Isso aconteceu porque o + também é um quantificador dentro das expressões regulares, então precisamos utilizar a \ para dizer que queremos o literal mesmo:

Eu criei uma regex para testar aqui, um pouco diferente da sua veja:

let pattern = /[\d\.]+E\+\d{2}/g

Veja que eu estou criando um grupo que vai receber dígitos e ponto final, ai eu utilizo o + para identificar que esse padrão de números e pontos para pegar mais de um

Depois coloquei o Ee o \+ para identificar que é de fato um + e um \d{2} para ser os 2 últimos digitos

Testando esse padrão:

let valor = "2.4446506362607E+29+3.7298826723704E+29"
let pattern = /[\d\.]+E\+\d{2}/g

let resposta = valor.matchAll(pattern)
resposta.next()

>>>>
done: false
value: Array [ "2.4446506362607E+29" ]

resposta.next()
>>>
done: false
value: Array [ "3.7298826723704E+29" ]

Compreendeu?

Abraços e Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software