http://www.perlmonks.org?node_id=1022951


in reply to Re^2: Regular expression help
in thread Regular expression help

But I need it in regular expression..
So, McA solution is using what? Please show what you have done on your own.
The result you are getting and what is expected.
Thanks

If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me

Replies are listed 'Best First'.
Re^4: Regular expression help
by ghosh123 (Monk) on Mar 12, 2013 at 09:45 UTC

    Well the problem is a bit more complicated. The solution McA has given certainly works.

    Lets say in the loop, I first grep it for a particular user say, stephen by the following expression ,although the later part of this expression needs to be corrected for the server name and etc

    if(/^\s+stephen(.*)/)

    And , now for the subsequent iteration, I want to grep all the user names and servername,version name for other users who are not stephen. That is becoming a problem to uniquely identify the lines for which the user name is not known. So using split is a problem. Can't I have a regular expression of the following pattern :
    $line =~ /^\s+(any user but stephen) (machine name) (version)(server)(date time )/
    Hope I could explain the problem.
    Thanks.

      while(<DATA>){ next if /^\s*stephen\s/; if (~m/^(\w+?)\s+(\w+?)\s+\((\w+?)\)\s+\((\w+?)\),\s+.+$/){ print "user: $1 version: $3 server: $4"; } }

      (More complicated and less elegant that the use of split in any case IMHO...)