# Regular Expression help needed

**URL:** <https://www.ruby-forum.com/t/regular-expression-help-needed/153764>\
**Category:** Ruby\
**Created:** [November 20, 2008, 9:38pm UTC](https://www.ruby-forum.com/t/regular-expression-help-needed/153764 "2008-11-20T21:38:54Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![raju\_k](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9adbd/32.png) [@raju\_k](https://www.ruby-forum.com/u/raju_k)\
**Post date:** [November 20, 2008, 9:38pm UTC](https://www.ruby-forum.com/t/regular-expression-help-needed/153764/1 "2008-11-20T21:38:54Z")

</div>

Hi,  
I have the following text as a string. Can someone tell me a way to  
extract the Args array in to different key value pairs as listed in the  
example ?

Request={Identities={ImmedCaller={Name=unknown,  
SubjectID=abcd1:sid:00000000-0000-0000-0000-000000000000}},  
Args=[{adpage=1, useragent=NORMAL, q=Digital Camera, adtest=off,  
searchalias=aps, mkt=us, ch=all-product-search, nodeList=, lang=en,  
adcount=a3b0c3, ip=110.155.15.777}], Service=WebSearchClientService,  
Metadata={GUID=0Q1C11GKER2MEDM5RQDY, Domain=prod,  
[Host=woe-us-preprod-gp-5106.iad5.xyz.com](http://Host=woe-us-preprod-gp-5106.iad5.xyz.com), AppVersion=_, UserName=nobody,  
ClientExit=/gp/search/construct-application-context.mi  
[retail]:.SECOND\_PREPARE, ProcessID=23480, TTL=1.0, Sandbox=_,  
Priority=1.0, DeploymentID=70026525, EnvName=RetailWebsite/US,  
DepartureTimestamp=Mon Nov 10 17:30:58 GMT 2008, Realm=USXYz,  
AppName=gurupa, ClientEntry=/gp/search},  
Shared={sessionID=nNo5yA.xUpGCpgbhuaVn8zG2xXM\_,  
clientID=168v1upXnQTYihGa9iDnty-o9z4\_,  
sessionIDPlain=176-2496192-6342626, customerIDPlain=A2LOKEDOEV0ZP5,  
customerID=MHuB7vXfQZbKXH9-U7M7ZZfvy3Q\_,  
clientIDPlain=189-5451931-2768662}, Method=WebSearch}

eg:  
adpage=1  
useragent=NORMAL  
q=Digital Camera  
adtest=off  
mkt=us  
ch=all-product-search  
adcount=a3b0c3

Thanks in Advance.  
Raju

---

<div class="post-metadata">

**Author:** ![raju\_k](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9adbd/32.png) [@raju\_k](https://www.ruby-forum.com/u/raju_k)\
**Post date:** [November 20, 2008, 10:06pm UTC](https://www.ruby-forum.com/t/regular-expression-help-needed/153764/2 "2008-11-20T22:06:49Z")

</div>

On Thu, Nov 20, 2008 at 6:34 PM, Raju A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Metadata={GUID=0Q1C11GKER2MEDM5RQDY, Domain=prod,  
> clientIDPlain=189-5451931-2768662}, Method=WebSearch}
> 
> eg:  
> adpage=1  
> useragent=NORMAL  
> q=Digital Camera  
> adtest=off  
> mkt=us  
> ch=all-product-search  
> adcount=a3b0c3

Not too pretty but gets the job done:

str =~ /Args=[{(._)}]/  
hash = Hash[_$1.gsub(‘, ‘,’,’).split(/[,=]/)]

Diogo

---

<div class="post-metadata">

**Author:** ![raju\_k](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9adbd/32.png) [@raju\_k](https://www.ruby-forum.com/u/raju_k)\
**Post date:** [November 21, 2008, 5:04am UTC](https://www.ruby-forum.com/t/regular-expression-help-needed/153764/3 "2008-11-21T05:04:44Z")

</div>

On 20.11.2008, at 20:34 , Raju A. wrote:

> adcount=a3b0c3, ip=110.155.15.777}], Service=WebSearchClientService,  
> sessionIDPlain=176-2496192-6342626, customerIDPlain=A2LOKEDOEV0ZP5,  
> adcount=a3b0c3
> 
> ## Thanks in Advance. Raju
> 
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

hash = {}  
data.match(/Args=[({[^}]_)/)[1].scan(/(\w+)=([^,]_)/) do |key, val|  
hash[key] = val  
end

einarmagnus

---

<div class="post-metadata">

**Author:** ![raju\_k](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9adbd/32.png) [@raju\_k](https://www.ruby-forum.com/u/raju_k)\
**Post date:** [November 21, 2008, 3:55pm UTC](https://www.ruby-forum.com/t/regular-expression-help-needed/153764/4 "2008-11-21T15:55:40Z")

</div>

It’s obviously some sort of object serialization format. I can’t tell  
exactly which format though. Do you have access to the code that  
created it? There’s a chance you’d be able to import it directly into  
a data structure.

– Mark.
