Professional Web Applications Themes

Reg. 'repeated pattern' matching - PERL Beginners

Hi, I have a question on pattern matching. Assume I have a line like this consisting of header field(via) and values(IPaddress) repeated like below via: 192.168.6.100; via:192.168.6.101; via: 203.290.89.90; ......so on I would like to know how many via: header field occur and to get each via header field value. I want to know how to loop through each via header field to extract the value by pattern matching expressions. Thanks in advance, Balaji Yahoo! India Insurance Special: Be informed on the best policies, services, tools and more....

  1. #1

    Default Reg. 'repeated pattern' matching

    Hi,

    I have a question on pattern matching. Assume I have a line like this consisting of header field(via) and values(IPaddress) repeated like below

    via: 192.168.6.100; via:192.168.6.101; via: 203.290.89.90; ......so on

    I would like to know how many via: header field occur and to get each via header field value. I want to know how to loop through each via header field to extract the value by pattern matching expressions.

    Thanks in advance,
    Balaji





    Yahoo! India Insurance Special: Be informed on the best policies, services, tools and more.
    Balaji Guest

  2. #2

    Default RE: Reg. 'repeated pattern' matching

    Balaji Thoguluva [mailto:co.in] wrote:
    :
    : I have a question on pattern matching. Assume I have a
    : line like this consisting of header field(via) and
    : values(IPaddress) repeated like below
    :
    : via: 192.168.6.100; via:192.168.6.101; via: 203.290.89.90; ......so on
    :
    : I would like to know how many via: header field occur and to
    : get each via header field value. I want to know how to loop
    : through each via header field to extract the value by pattern
    : matching expressions.

    What have you tried so far? What part are you stuck on?


    Charles K. Clarkson
    --
    Mobile Homes Specialist
    254 968-8328

    Charles Guest

  3. #3

    Default Re: Reg. 'repeated pattern' matching

    On Feb 26, Balaji Thoguluva said:
     

    You want to use the /g modifier to your regex. Either employ it in a
    while loop like this:

    while ($string =~ m{via:\s*(\d+\.\d+\.\d+\.\d+)}g) {
    print "value = $1\n";
    }

    or use it in list context like this:

    values = $string =~ m{via:\s*(\d+\.\d+\.\d+\.\d+)}g;

    --
    Jeff "japhy" Pinyan com http://www.pobox.com/~japhy/
    RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/
    CPAN ID: PINYAN [Need a programmer? If you like my work, let me know.]
    <stu> what does y/// stand for? <tenderpuss> why, yansliterate of course.

    Jeff Guest

  4. #4

    Default Re: Reg. 'repeated pattern' matching

    On 2/25/2004 9:29 PM, Balaji Thoguluva wrote:
     

    There are alternatives to using regexs:

    #!/usr/bin/perl
    use strict;
    use warnings;

    #chomp(my $header = <DATA>);
    #my via = split /;\s*/, $header;
    #s/^via:\s*// for via;

    # -or-

    #my via = map { s/^via:\s*//; $_ }
    # split /;\s*/, scalar <DATA>;

    print join "\n", via;

    __DATA__
    via: 192.168.6.100; via:192.168.6.101; via: 203.290.89.90;


    Randy Guest

Similar Threads

  1. pattern matching
    By Tad McClellan in forum PERL Beginners
    Replies: 30
    Last Post: June 23rd, 07:42 PM
  2. Pattern matching for xx-xx-xx string
    By jeff@nospam.com in forum PHP Development
    Replies: 7
    Last Post: January 19th, 06:38 PM
  3. Pattern Matching Operators
    By Prasad Karpur in forum PERL Beginners
    Replies: 2
    Last Post: October 5th, 04:21 PM
  4. Pattern matching username
    By perl@swanmail.com in forum PERL Beginners
    Replies: 1
    Last Post: September 30th, 05:37 PM
  5. matching the pattern (strings)
    By MJS in forum PERL Beginners
    Replies: 0
    Last Post: September 28th, 07:04 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139