[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Help parsing and extracting a num

Iñaki Baz Castillo

3/25/2008 2:39:00 PM

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

4 Answers

Robert Klemme

3/25/2008 2:49:00 PM

0

2008/3/25, I=F1aki Baz Castillo <ibc@aliax.net>:
> 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ñaki Baz Castillo

3/25/2008 3:03:00 PM

0

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

Iñaki Baz Castillo

3/25/2008 4:29:00 PM

0

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

Iñaki Baz Castillo

3/25/2008 4:34:00 PM

0

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