Help parsing and extracting a num

  • Thread starter Iñaki Baz Castillo
  • Start date
I

Iñaki Baz Castillo

SGksIEknbSB0cnlpbmcgdG8gZXh0cmFjdCBhIG51bSBmcm9tIGEgc3RyaW5nLiBUaGlzIHN0cmlu
ZyBpcyBpbiBmYWN0CnNvbWUgbnVtYmVyIG9mIGhlYWRlcnMgc2VwYXJhdGVkIGJ5IFxyXG4gb3Ig
XG4uIGZvciBub3cgSSBqdXN0IG5lZWQgdG8KZXh0cmFjdCB0aGUgdmFsdWUgb2YgIkNvbnRlbnQt
TGVuZ3RoIiAoY2FzZSBpbnNlbnNpdGl2ZSkgaGVhZGVyLgoKRm9yIGV4YW1wbGU6CgppcmI+IGhl
YWRlcnMgPSAiVmlhOiB2aWExLHZpYTIsXHJcbiB2aWEzXHJcbkZyb206CmZyb21fdXNlckBkb21h
aW5cbkNvbnRlbnQtbGVuZ3RoOiAyMlxyXG5UbzogdG9fdXNlckBkb21haW5cbiIKCkkgZG8gdGhl
IGZvbGxvd2luZzoKCmlyYj4gaGVhZGVycy5zY2FuKC9jb250ZW50LWxlbmd0aFxzKjpccyooWzAt
OV0qKS9pKS50b19zLnRvX2kKPT4gMjIKCkluIGNhc2UgdGhlICJDb250ZW50LUxlbmd0aCIgaGVh
ZGVyIGV4aXN0IGJ1dCBoYXMgZW1wdHkgdmFsdWUgSSBnZXQgMAp3aXRoIHRoZSBhYm92ZSBjb2Rl
ICh0aGF0J3Mgd2hhdCBJIG5lZWQgaW4gZmFjdCkuCgpJcyB0aGVyZSBhbnkgd2F5IGZhc3RlciB0
byBkbyB0aGUgc2FtZT8gYW55IGhlbHA/CgpUaGFua3MgYSBsb3QuCgotLSAKScOxYWtpIEJheiBD
YXN0aWxsbwo8aWJjQGFsaWF4Lm5ldD4K
 
R

Robert Klemme

2008/3/25 said:
Hi, I'm trying to extract a num from a string. This string is in fact
some number of headers separated by \r\n or \n. for now I just need to
extract the value of "Content-Length" (case insensitive) header.

Why don't you use Net::Http? IIRC this gives you individual header
fields already.
For example:

irb> headers =3D "Via: via1,via2,\r\n via3\r\nFrom:
from_user@domain\nContent-length: 22\r\nTo: to_user@domain\n"

I do the following:

irb> headers.scan(/content-length\s*:\s*([0-9]*)/i).to_s.to_i
=3D> 22

In case the "Content-Length" header exist but has empty value I get 0
with the above code (that's what I need in fact).

Is there any way faster to do the same? any help?

headers[/content-length:\s*(\d+)/i, 1].to_i

Cheers

robert

--=20
use.inject do |as, often| as.you_can - without end
 
I

Iñaki Baz Castillo

MjAwOC8zLzI1LCBSb2JlcnQgS2xlbW1lIDxzaG9ydGN1dHRlckBnb29nbGVtYWlsLmNvbT46Cj4g
MjAwOC8zLzI1LCBJw7Fha2kgQmF6IENhc3RpbGxvIDxpYmNAYWxpYXgubmV0PjoKPgo+ID4gSGks
IEknbSB0cnlpbmcgdG8gZXh0cmFjdCBhIG51bSBmcm9tIGEgc3RyaW5nLiBUaGlzIHN0cmluZyBp
cyBpbiBmYWN0Cj4gID4gIHNvbWUgbnVtYmVyIG9mIGhlYWRlcnMgc2VwYXJhdGVkIGJ5IFxyXG4g
b3IgXG4uIGZvciBub3cgSSBqdXN0IG5lZWQgdG8KPiAgPiAgZXh0cmFjdCB0aGUgdmFsdWUgb2Yg
IkNvbnRlbnQtTGVuZ3RoIiAoY2FzZSBpbnNlbnNpdGl2ZSkgaGVhZGVyLgo+Cj4KPiBXaHkgZG9u
J3QgeW91IHVzZSBOZXQ6Okh0dHA/ICBJSVJDIHRoaXMgZ2l2ZXMgeW91IGluZGl2aWR1YWwgaGVh
ZGVyCj4gIGZpZWxkcyBhbHJlYWR5LgoKWWVzLCBidXQgSSdtIGRvaW5nIGEgcGFyc2VyIGZvciBT
SVAgcHJvdG9jb2wgKHNpbWlsYXIgdG8gSFRUUCBidXQgbm90IHRoZSBzYW1lKS4KCgoKPiBoZWFk
ZXJzWy9jb250ZW50LWxlbmd0aDpccyooXGQrKS9pLCAxXS50b19pCgpHcmVhdCAhCgpUaGFua3Mu
CgoKLS0gCknDsWFraSBCYXogQ2FzdGlsbG8KPGliY0BhbGlheC5uZXQ+Cg==
 
I

Iñaki Baz Castillo

PiAyMDA4LzMvMjUsIFJvYmVydCBLbGVtbWUgPHNob3J0Y3V0dGVyQGdvb2dsZW1haWwuY29tPjoK
Cj4gPiBoZWFkZXJzWy9jb250ZW50LWxlbmd0aDpccyooXGQrKS9pLCAxXS50b19pCgpUaGVyZSBp
cyBhIHNtYWxsIGlzc3VlIGhlcmUgdGhhdCBJIGNhbid0IHNvbHZlLiBJbWFnaW5lIHRoZXJlIGlz
CiJDb250ZW50LUxlbmd0aCIgaGVhZGVyIGJ0IHdpdGggZW1wdHkgdmFsdWUsIGFuZCB0aGUgbmV4
dCBoZWFkZXIgaGFzIGEKbnVtZXJpYyBoZWFkZXIgbmFtZToKCi0tLS0tLS0KQ29udGVudC1MZW5n
dGg6CjEyMzQ6IGJsYWJsYWJsYQotLS0tLS0tCgpJbiB0aGF0IGNhc2UgdGhlIGNvZGUgYWJvdmUg
cmV0dXJucyAxMjM0IHdoaWxlIGl0IHNob3VsZCByZXR1cm4gMC4KCkRlbW9zdHJhdGlvbjoKCiJW
aWE6IHZpYTEsdmlhMixcclxuIHZpYTNcclxuRnJvbTogZnJvbV91c2VyQGRvbWFpblxuQ29udGVu
dC1sZW5ndGg6ClxyXG4xMjM0OiBibGFibGFcblRvOiB0b191c2VyQGRvbWFpblxuIlsvY29udGVu
dC1sZW5ndGhccyo6XHMqKFxkKykvaSwKMV0udG9faQo9PiAxMjM0CgoKSSdtIHRyeWluZyB0byBz
b2x2ZSBpdCBieSBhZGluZyBbXihccnxcbildIGFmdGVyIChcZCspIGJ1dCBJIGdldApub3RoaW5n
LiBQbGVhc2UsIGNvdWxkIHlvdSBoZWxwIG1lIHdpdGggdGhpcz8KClRoYW5rcyBhIGxvdCBpbiBh
ZHZhbmNlIGFuZCBiZXN0IHJlZ2FyZHMuCgoKLS0gCknDsWFraSBCYXogQ2FzdGlsbG8KPGliY0Bh
bGlheC5uZXQ+Cg==
 
I

Iñaki Baz Castillo

MjAwOC8zLzI1LCBJw7Fha2kgQmF6IENhc3RpbGxvIDxpYmNAYWxpYXgubmV0PjoKCj4gIC0tLS0t
LS0KPiAgQ29udGVudC1MZW5ndGg6Cj4gIDEyMzQ6IGJsYWJsYWJsYQo+ICAtLS0tLS0tCj4KPiAg
SW4gdGhhdCBjYXNlIHRoZSBjb2RlIGFib3ZlIHJldHVybnMgMTIzNCB3aGlsZSBpdCBzaG91bGQg
cmV0dXJuIDAuCj4KPiAgRGVtb3N0cmF0aW9uOgo+Cj4KPiAgIlZpYTogdmlhMSx2aWEyLFxyXG4g
dmlhM1xyXG5Gcm9tOiBmcm9tX3VzZXJAZG9tYWluXG5Db250ZW50LWxlbmd0aDoKPgo+IFxyXG4x
MjM0OiBibGFibGFcblRvOiB0b191c2VyQGRvbWFpblxuIlsvY29udGVudC1sZW5ndGhccyo6XHMq
KFxkKykvaSwKPiAgMV0udG9faQo+ICA9PiAxMjM0Cj4KPgo+ICBJJ20gdHJ5aW5nIHRvIHNvbHZl
IGl0IGJ5IGFkaW5nIFteKFxyfFxuKV0gYWZ0ZXIgKFxkKykgYnV0IEkgZ2V0Cj4gIG5vdGhpbmcu
IFBsZWFzZSwgY291bGQgeW91IGhlbHAgbWUgd2l0aCB0aGlzPwoKCkkgdGhpbmsgSSBoYXZlIG5v
dyB0aGUgc29sdXRpb24uIFRoZSBwcm9ibGVtIGlzIHRoYXQgXHMgbWF0Y2hlcyBhbHNvClxuIHNv
IHdoYXQgSSBkbyBub3cgaXM6CgoKWy9jb250ZW50LWxlbmd0aFxzKjpbIFx0XSooXGQrKS9pLCAx
XS50b19pCgooSSBhbGxvdyBhbnkgc3BhY2Ugb3IgdGFiIGJlZm9yZSB0aGUgZXhwZWN0ZWQgbnVt
YmVycyBidXQgbm8gXHIgb3IgXG4pLgoKCgotLSAKScOxYWtpIEJheiBDYXN0aWxsbwo8aWJjQGFs
aWF4Lm5ldD4K
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,285
Messages
2,571,416
Members
48,111
Latest member
PorterZ31

Latest Threads

Top