in reply to Regular Expressions

Sorry for the Unclear question. I am first time in this. this is somewhat a homework question.Plz help me to sort it out..

the text i will get from another .txt file and the text file will have so many lines

i need to replace some repeating words with comma in each line.

For eg:

These are the-words-ofline-X c:\temp\onefilename.txt with time =10day2h::56m::25s

These are the-words-ofline-Y c:\temp\secondfilename.txt with time =5day3h::46m::45s

at the end i need

X,c:\temp\onefilename.txt,10,2,56,25,

Y,c:\temp\secondfilename.txt,5,3,46,45,

in an array

Replies are listed 'Best First'.
Re^2: Regular Expressions
by AnomalousMonk (Archbishop) on Jul 07, 2015 at 10:18 UTC

    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:  <%-(-(-(-<