Tenho uma string regex para capturar todos os tipos de números, mas percebi que ela também captura números que vêm imediatamente depois do texto.
Por exemplo, usando uma frase de teste como: O bloco de Nylon-12 era 1,23 por 4E-56 por -7,89 Eu gostaria de extrair 1,23, 4E-56 e -7,89 . Também parece estar pegando o -12 do Nylon-12.
Bastante novo na sintaxe regex, como devo começar minha expressão para garantir que ela não esteja pegando o número de uma palavra. Se houver um espaço entre quaisquer caracteres de texto e caracteres numéricos, tudo bem, mas quando não há espaço como em Nylon-12, não quero capturá-los.
Minha expressão regex que criei para capturar números é fornecida aqui:
[+\-]?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+\-]?(?:0|[1-9]\d*)(?:\.\d+)?)?
onde usar regexper se parece com isto:
EDITAR:
Isso parece ser um problema relacionado à busca do operador +/-. Tentei colocar um \b no início e ver os resultados.
Se eu inserir Nylon12 , Nylon-13 ou Nylon+14 na expressão regular, ele retornará -13 e +14 , não 12.