Jump to content
Sign in to follow this  
Luigi

Regex's Experts, somebody can help me to split it?

Recommended Posts

Luigi

Hi, I need split a string like this:

Locals $ str = "aaa:bbb,ccc:{key1:value1},ddd:{key2:{key3:value3,key4:value4}},eee:{key5:value5}"

Always have a value folowed a key, splited by :, if nested, separated by ,

No need split the child, I use recursion

I was exptect something like this

aaa: bbb
ccc: {key1: value1}
ddd: {key2: {key3: value3, key4, valor4}}
eee: {key5, valor5}
Question: is possible solve this with regular expression or exist anotherway?
 
Best regards,
Detefon
Edited by Detefon

Visit my repository

Share this post


Link to post
Share on other sites
jchd

Detefon,

I suspect a couple typos in your example. I see that both (key4 and value4) and (key5 and value5)  are separated by commas, while they should use a colon in your syntax. That or key4 and key5 are misnommers and are in fact values and not actual keys.


This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Share this post


Link to post
Share on other sites
Luigi

@jhcd you are write, the example is corrected...

@Muzaiyan, nice idea, i forgot can I use this recurse... I try later.


Visit my repository

Share this post


Link to post
Share on other sites
mikell

?

#Include <Array.au3>

Local $str = "aaa:bbb,ccc:{key1:value1},fff:ggg,ddd:{key2:{key3:value3,key4:value4}},eee:{key5:value5}"

$res = StringRegExp($str, '(?:[^:,]+:[^:{},]+)|(?<=,)(?:.*?)(?=(?<=\}),|$)', 3)
 _ArrayDisplay($res)
Edited by mikell
  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.