By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
437,663 Members | 1,375 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 437,663 IT Pros & Developers. It's quick & easy.

Extracting data using regular expression

P: 51
hi,
i have data as under.
Expand|Select|Wrap|Line Numbers
  1.  127.0.0.1 - - [05/May/2008:14:28:56 +0530] "GET /favicon.ico HTTP/1.1" 404 292
  2. 127.0.0.1 - - [05/May/2008:14:28:56 +0530] "GET /favicon.ico HTTP/1.1" 404 292
  3. 127.0.0.1 - - [05/May/2008:14:30:33 +0530] "GET /pear/symfony/ HTTP/1.1" 404 294
  4. 127.0.0.1 - - [05/May/2008:14:30:39 +0530] "GET /symfony/ HTTP/1.1" 404 289
  5. 127.0.0.1 - - [05/May/2008:14:32:35 +0530] "GET /symfony/sf_sandbox HTTP/1.1" 404 299
  6. 127.0.0.1 - - [05/May/2008:14:32:49 +0530] "GET / HTTP/1.1" 200 3466
  7. 127.0.0.1 - - [05/May/2008:14:32:49 +0530] "GET /appserv/members.gif HTTP/1.1" 200 755
  8. 127.0.0.1 - - [05/May/2008:14:32:49 +0530] "GET /appserv/flag-thai.png HTTP/1.1" 200 545
  9. 127.0.0.1 - - [05/May/2008:14:32:49 +0530] "GET /appserv/annoicon.gif HTTP/1.1" 200 1182
  10. 127.0.0.1 - - [05/May/2008:14:32:49 +0530] "GET /appserv/flag-english.png HTTP/1.1" 200 576
  11. 127.0.0.1 - - [05/May/2008:14:32:49 +0530] "GET /appserv/softicon.gif HTTP/1.1" 200 474
  12. 127.0.0.1 - - [05/May/2008:14:32:58 +0530] "GET /pear/ HTTP/1.1" 404 286
  13. 127.0.0.1 - - [05/May/2008:14:33:07 +0530] "GET /PEAR HTTP/1.1" 404 285
  14. 127.0.0.1 - - [05/May/2008:14:35:14 +0530] "GET /PEAR HTTP/1.1" 301 313
  15. 127.0.0.1 - - [05/May/2008:14:35:14 +0530] "GET /PEAR/ HTTP/1.1" 200 3264
  16. 127.0.0.1 - - [05/May/2008:14:35:15 +0530] "GET /icons/back.gif HTTP/1.1" 200 216
  17. 127.0.0.1 - - [05/May/2008:14:35:14 +0530] "GET /icons/blank.gif HTTP/1.1" 200 148
  18. 127.0.0.1 - - [05/May/2008:14:35:15 +0530] "GET /icons/folder.gif HTTP/1.1" 200 225
  19. 127.0.0.1 - - [05/May/2008:14:35:15 +0530] "GET /icons/unknown.gif HTTP/1.1" 200 245
  20. 127.0.0.1 - - [05/May/2008:14:35:19 +0530] "GET /PEAR/symfony/ HTTP/1.1" 200 7196
  21. 127.0.0.1 - - [05/May/2008:14:35:29 +0530] "GET /PEAR/symfony/sf_sandbox/ HTTP/1.1" 200 3680
  22. 127.0.0.1 - - [05/May/2008:14:35:29 +0530] "GET /icons/script.gif HTTP/1.1" 200 242
  23. 127.0.0.1 - - [05/May/2008:14:35:34 +0530] "GET /PEAR/symfony/sf_sandbox/apps/ HTTP/1.1" 200 1169
  24. 127.0.0.1 - - [05/May/2008:14:35:35 +0530] "GET /PEAR/symfony/sf_sandbox/apps/backend/ HTTP/1.1" 200 1580
  25. 127.0.0.1 - - [05/May/2008:14:35:37 +0530] "GET /PEAR/symfony/sf_sandbox/apps/backend/config/ HTTP/1.1" 200 3217
  26. 127.0.0.1 - - [05/May/2008:14:35:39 +0530] "GET /PEAR/symfony/sf_sandbox/apps/backend/config/app.yml HTTP/1.1" 200 22
  27. 127.0.0.1 - - [05/May/2008:14:35:44 +0530] "GET /PEAR/symfony/sf_sandbox/apps/backend/config/security.yml HTTP/1.1" 200 26
  28. 127.0.0.1 - - [05/May/2008:14:35:49 +0530] "GET /PEAR/symfony/sf_sandbox/apps/backend/config/config.php HTTP/1.1" 200 851
  29. 127.0.0.1 - - [05/May/2008:14:37:56 +0530] "GET /PEAR/symfony/sf_sandbox/apps/backend/config/view.yml HTTP/1.1" 200 375
  30.  
what i need is i want values between two //, that too after GET. if the values between // have spaces, those values should not be retrieved.

Thanks,
pavan
Aug 16 '08 #1
Share this Question
Share on Google+
9 Replies


100+
P: 129
Expand|Select|Wrap|Line Numbers
  1. $s = '127.0.0.1 - - [05/May/2008:14:30:33 +0530] GET /pear/symfony/ HTTP/1.1';
  2. if($s !~ /GET(\s*)\/(\w*)\s(\w*)\//)
  3. {
  4.     if($s =~ /GET(\s*)\/(\w*)\//)
  5.     {    print "Success $2\n";    }
  6. }
In regular expression i typed \/ this is not V this is combination of \ and / ok. Try with this almost it comes if u have any doubt give reply.
Aug 16 '08 #2

P: 51
$s = '127.0.0.1 - - [05/May/2008:14:30:33 +0530] GET /pear/symfony/ HTTP/1.1';
if($s !~ /GET(\s*)\/(\w*)\s(\w*)\//)
{
if($s =~ /GET(\s*)\/(\w*)\//)
{ print "Success $2\n"; }
}

In regular expression i typed \/ this is not V this is combination of \ and / ok. Try with this almost it comes if u have any doubt give reply.
hi,
Actually how to get values between / and / without using GET ? I need to get all the values in an array .

Regards,
pavan.
Aug 16 '08 #3

100+
P: 129
127.0.0.1 - - [05/May/2008:14:30:39 +0530] "GET /symfony/ HTTP/1.1" 404
289

In tha above example what text u want exactly i.e)
symfony
(0r)
sympony,HTTP
Aug 16 '08 #4

P: 51
127.0.0.1 - - [05/May/2008:14:30:39 +0530] "GET /symfony/ HTTP/1.1" 404
289

In tha above example what text u want exactly i.e)
symfony
(0r)
sympony,HTTP
hi,
i want everything between // in an array in that line. there may be one // or multiple // like 127.0.0.1 - - [05/May/2008:14:35:34 +0530] "GET /PEAR/symfony/sf_sandbox/apps/ HTTP/1.1" 200 1169
here i want May,PEAR,symphony,apps,HTTP in an array

pavan
Aug 16 '08 #5

100+
P: 129
that means, u want
May,symfony,HTTP are between //. U want After GET and in between the //.
In the before example 1.1 is after / u doesn't want it?
Aug 16 '08 #6

P: 51
that means, u want
May,symfony,HTTP are between //. U want After GET and in between the //.
In the before example 1.1 is after / u doesn't want it?
hi,
no Get is not compulsary in all files. There may be get or there may not be.

Regards,
pavan
Aug 16 '08 #7

100+
P: 129
Expand|Select|Wrap|Line Numbers
  1. if($s =~ /\"(\w*)(\s*)\//g)
  2. {    print "$'\n";$s = $';    }
  3. while($s =~ /(\w*)\//g)
  4. {    $s = $';print "$1\n";push @arr,$1;    }
  5. print "@arr\n";
try this code man
Aug 16 '08 #8

P: 51
if($s =~ /\"(\w*)(\s*)\//g)
{ print "$'\n";$s = $'; }
while($s =~ /(\w*)\//g)
{ $s = $';print "$1\n";push @arr,$1; }
print "@arr\n";

try this code man
hey,
thank u very much.
Aug 16 '08 #9

eWish
Expert 100+
P: 971
pavanponnapalli and sasimca007,

When posting code samples here at Bytes.com it is expected of everyone to use the [code][/code] tags. It will preserve the format and is much more readable. Also, please use the code tags when posting sample data as well.

--Kevin
Aug 16 '08 #10

Post your reply

Sign in to post your reply or Sign up for a free account.