T
Tony De
On to my next learning exercise. As I parse a file I need to pull an IP
address out a line. Now I thought a regular expression would be the
ticket, but it's giving me a problem. The follow line is an example
string I need to pull one of two IP address out of: (they are not
always formed the same)
Received: from mmds-111-19-22-30.twm.ca.internet.net (HELO
?192.168.1.2?) (222.222.222.22)
I need that last IP address. Now the problem is that I can't always
count on it being enclosed in paren's. Although I can expect the right
paren to always be there.
So here's my regex exp:
sourceip = line.scan(/\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/)
And as you might expect, it is pulling both IP addresses. Is there a
way I can adjust the expression to grab the second IP testing for the
")" or is there another method I can use? Short of dissecting the
entire string backwards and testing whether I have a number or a char,
decimal and at most 3 chars from it, etc?
tonyd
address out a line. Now I thought a regular expression would be the
ticket, but it's giving me a problem. The follow line is an example
string I need to pull one of two IP address out of: (they are not
always formed the same)
Received: from mmds-111-19-22-30.twm.ca.internet.net (HELO
?192.168.1.2?) (222.222.222.22)
I need that last IP address. Now the problem is that I can't always
count on it being enclosed in paren's. Although I can expect the right
paren to always be there.
So here's my regex exp:
sourceip = line.scan(/\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/)
And as you might expect, it is pulling both IP addresses. Is there a
way I can adjust the expression to grab the second IP testing for the
")" or is there another method I can use? Short of dissecting the
entire string backwards and testing whether I have a number or a char,
decimal and at most 3 chars from it, etc?
tonyd