in reply to Re: Regular Expressions
in thread Regular Expressions

You still show no code (i.e., no effort), so I probably shouldn't respond in this way. Please try to make a greater effort in future.

This uses the  \K regex operator, available with Perl versions 5.10 and above. (Update: You should state the Perl version you're working with.) The  dd (from Data::Dump) statement at the end shows that the contents of the  @lines array have been changed "in place" (the  $line scalar is aliased to each element of the array).

c:\@Work\Perl\monks>perl -wMstrict -le "use 5.010; ;; use Data::Dump; ;; my @lines = ( 'X c:\temp\onefilename.txt with time =10day2h::56m::25s', 'Y c:\temp\secondfilename.txt with time =5day3h::46m::45s', ); ;; for my $line (@lines) { print qq{'$line'}; $line =~ s{ \G (?: [[:upper:]] \K \s+ | \S+ \K \s+ \D+ | \d+ \K \D+ +) } {,}xmsg; print qq{'$line' \n}; } ;; dd \@lines; " 'X c:\temp\onefilename.txt with time =10day2h::56m::25s' 'X,c:\temp\onefilename.txt,10,2,56,25,' 'Y c:\temp\secondfilename.txt with time =5day3h::46m::45s' 'Y,c:\temp\secondfilename.txt,5,3,46,45,' [ "X,c:\\temp\\onefilename.txt,10,2,56,25,", "Y,c:\\temp\\secondfilename.txt,5,3,46,45,", ]
Please see perlre, perlrequick, and especially perlretut.


Give a man a fish:  <%-(-(-(-<