For your simple specification you really only need to find the final newline and capture through the end of the string. A regular expression isn't needed for that:
my $found = substr $tmp, rindex($tmp, "\n")+1; print "$found\n";
This solution would translate with minor changes to almost any language.
A regular expression would let you get more fancy in what you gather without the code becoming unmanagable.
my $tmp = "1: 2\n2: /my/tmp/20160213T161519/outgoing\n3: DL\n4: 0\nTem +pSource: , Ue: 2, TaskName=, TempDest: \nTaskName \n/data/busybox/ps +|grep mgen5| grep -v grep\nDL txt is running PID: 3848\nRunning:Mgen: +3848"; my @fields = qw(All Value Name Process_ID); my %substr; @substr{@fields} = $tmp =~ m/\n(Running:(([^:]+):(\d+)))(?:\D|$)/; printf "%-12s[%s]\n", $_, $substr{$_} for @fields;
This produces...
All [Running:Mgen:3848] Value [Mgen:3848] Name [Mgen] Process_ID [3848]
Dave
In reply to Re: How to findout a sub string from the string
by davido
in thread How to findout a sub string from the string
by gjoshi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |