Regex para espaço separou 60 valores numéricos exatamente

0

Alguém pode me ajudar a escrever regex para 60 valores numéricos separados por espaço? Os valores podem ser números flutuantes ou inteiros.

Por exemplo: "90.90 78.54 34 ...." (60 valores) ou "89.43 90 34 ...." (60 valores).

Eu tentei o seguinte

^(\s*([0-9]|[0-9.])+\s*){60}$

Mas isso faz com que o navegador trave.

    
por Nilesh 16.11.2016 / 12:06

1 resposta

1

Alguns problemas com sua expressão:

^(\s*([0-9]|[0-9.])+\s*){60}$

  • por que você tem \s* no começo e no final? Um deles (no final) seria suficiente
  • \s* : por que * ? Espaços em branco não são opcionais, deve haver espaço em branco entre os números (se você quiser cobrir a situação em que o último número é o final da string, você pode usar ([0-9.]+\s+){59}[0-9.]+
  • ([0-9]|[0-9.]) - [0-9.] seria suficiente, salvando muitas etapas para o mecanismo de regex
  • ^...$ - você deseja selecionar 60 números ou apenas validar que uma string consiste em 60 números? (sua abordagem mostra o segundo).

Portanto, a expressão correta seria:

  • ([0-9.]+\s+){59}[0-9.]+ ,
  • ou incluindo espaços iniciais e finais:
    \s*([0-9.]+\s+){59}[0-9.]+\s* ,
  • e, opcionalmente, você pode colocá-lo entre ^...$
por 16.11.2016 / 12:18

Tags