/ / Regex para permitir que um arquivo contenha números decimais em todas as linhas - python, regex, perl

Regex para permitir que um arquivo contenha números decimais em todas as linhas - python, regex, perl

Eu estou tentando usar a expressão regular para verificar se meu arquivo pode conter apenas números decimais números inteiros e novos espaços Por exemplo, alguns valores permitidos são

Arquivo1

0.10
0.05
0.07
0.03
0.15
0.60
8
10.5

Arquivo2

5 10.4
1.6766 4.2
3.9
9 4
1.67 3

Eu tentei usar o seguinte regex

/^((d+.?d*s*)+n)+/

O que estou perdendo?

Respostas:

2 para resposta № 1

Talvez você deva analisar seus arquivos linha por linha e esquecer a coisa multilinha. Você pode querer experimentar a seguinte parte do código Perl. Que imprime o número da linha que não corresponde ao seu regex.

my $num = qr/d+(?:.d+)?/;

while( <> ){
chomp;
die "Error line $." unless m/^(?: $num (?:s+ $num)* | s* )$/x;
}

0 para resposta № 2

Considerando o seu comentário, aqui está outra proposta. Eu verifiquei meu regex contra seus dados e funciona.

$/ = undef; # slurp mode

my $num = qr/d+(?:.d+)?/;
my $data = <>;

die "Error" unless $data =~ m/A(?: ^(?: $num (?:s+ $num)* | s* )$)*Z/xms;