Luigi Posted August 31, 2014 Share Posted August 31, 2014 (edited) 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 September 1, 2014 by Detefon Visit my repository Link to comment Share on other sites More sharing options...
Muzaiyan Posted August 31, 2014 Share Posted August 31, 2014 try this Local $str = "aaa:bbb|ccc:{key1:value1}|ddd:{key2:{key3:value3,key4,value4}}|eee:{key5,value5}" $output = StringReplace($str,"|" , @CRLF) MsgBox(64,"",$str & @CRLF & @CRLF & $output) Link to comment Share on other sites More sharing options...
jchd Posted August 31, 2014 Share Posted August 31, 2014 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 hereRegExp tutorial: enough to get startedPCRE 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) Link to comment Share on other sites More sharing options...
Luigi Posted August 31, 2014 Author Share Posted August 31, 2014 (edited) @jchd you are write, the example is corrected... @Muzaiyan, nice idea, i forgot can I use this recurse... I try later. Edited June 22, 2019 by Luigi Visit my repository Link to comment Share on other sites More sharing options...
Solution mikell Posted August 31, 2014 Solution Share Posted August 31, 2014 (edited) ? #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 August 31, 2014 by mikell Luigi 1 Link to comment Share on other sites More sharing options...
Luigi Posted August 31, 2014 Author Share Posted August 31, 2014 (edited) Perfect @mikell, thank you! Edited June 22, 2019 by Luigi Visit my repository Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now