Regular expression insert for date formatting (Perl)

Suppose I have line 04032010. I want it to be 04/03/2010. How to insert slashes with regex?

+3
source share
3 answers

Well, the regex just matches, but you can try something like this: with /(..)(..)(..)/$ 1 / $ 2 / $ 3 /

#!/usr/bin/perl

$var = "04032010";
$var =~ s/(..)(..)(....)/$1\/$2\/$3/;
print $var, "\n";

Works for me:

$ perl perltest
04/03/2010
+3
source

To do this with regex, try the following:

my $var = "04032010";
$var =~ s{ (\d{2}) (\d{2}) (\d{4}) }{$1/$2/$3}x;
print $var;

\d . {n} n . \d{2}, \d{4}, . , , $1, $2, $3... ..

. , , . , , , .

, , x, . .

s{(\d{2})(\d{2})(\d{4})}{$1/$2/$3}x; vs s{ (\d{2}) (\d{2}) (\d{4}) }{$1/$2/$3}x;

+4

I always prefer to use a different delimiter if /involved, so I would go for

s| (\d\d) (\d\d) |$1/$2/|x ;
+2
source

Source: https://habr.com/ru/post/1739719/


All Articles