Que padrão de regex eu teria que usar para analisar caracteres indesejados nesse formato?

0
#!/usr/bin/perl
POSIX qw(strftime);
my $time =  strftime("%YT%mT%d TTTT%H:%M", localtime);
print ("Todays date and time is $time\n");

Estou um pouco enferrujado na regex, o que seria um padrão para pesquisar e substituir a seguinte saída. 2014T03T21 TTTT15: 37? Eu apenas gostaria que a data fosse exibida. Se você conhece um método diferente de regex, isso seria ótimo também.

    
por jhamPac 22.03.2014 / 00:40

1 resposta

0

Você pode usar essa regex para corresponder ao padrão que você forneceu e os grupos de captura entre parênteses para selecionar os três componentes desejados: (\d{4})T(\d{2})T(\d{2}) TTTT\d{2}:\d{2}

Isto irá capturar o ano, mês e data. Ao combinar, você pode atribuí-las a três variáveis usando a seguinte sintaxe:

$time =~ m/(\d{4})T(\d{2})T(\d{2}) TTTT\d{2}:\d{2}/;
my ($year, $month, $day) = ($1, $2, $3);

Existem muitas ferramentas on-line que expandem e explicam padrões de regex.

    
por 22.03.2014 / 01:25

Tags