ale1981 Posted October 29, 2014 Posted October 29, 2014 Is it possible to split a string in to an array using a single Regex expression? I have a string like "C1 X1 B2" I would like to split the string in to a 2D array like; $array[0][1] = C $array[0][2] = 1 $array[1][1] = X $array[1][2] = 1 $array[2][1] = B $array[2][2] = 2 Thanks in advance.
BrewManNH Posted October 29, 2014 Posted October 29, 2014 StringRegExp returns a 1D array, you'd need to convert that to a 2D on your own. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
jdelaney Posted October 29, 2014 Posted October 29, 2014 (edited) Out of the box, you can create an array of arrays: #include <Array.au3> $aaValues = StringRegExp("C1 X1 B2","(\w)(\d)",4) For $i = 0 To UBound($aaValues)-1 _ArrayDisplay($aaValues[$i]) Next Edited October 29, 2014 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
Exit Posted October 29, 2014 Posted October 29, 2014 No RegEx, but working: #include <array.au3> _Example("C1 X1 B2") _Example("C1 XYZ23 A B2") Func _Example($string) $aOrg = StringSplit(StringStripWS($string, 7), " ", 2) $dim = 0 For $i = 0 To UBound($aOrg) - 1 $dim = (StringLen($aOrg[$i]) > $dim ? StringLen($aOrg[$i]) : $dim) Next Local $array[UBound($aOrg)][$dim] For $i = 0 To UBound($aOrg) - 1 $aTemp = StringSplit($aOrg[$i], "", 2) For $j = 0 To UBound($aTemp) - 1 $array[$i][$j] = $aTemp[$j] Next Next _ArrayDisplay($array) EndFunc ;==>_Example App: Au3toCmd UDF: _SingleScript()
jguinch Posted October 29, 2014 Posted October 29, 2014 #Include <Array.au3> $string = "C1 X1 B2" $aSplit = StringRegExp($string, "([BCJLPX]\d)", 3) Local $aRes[ UBound($aSplit) ][2] For $i = 0 To UBound($aSplit) - 1 $aRes[$i][0] = StringLeft($aSplit[$i], 1) $aRes[$i][1] = StringRight($aSplit[$i], 1) Next _ArrayDisplay($aRes) Spoiler Network configuration UDF, _DirGetSizeByExtension, _UninstallList Firefox ConfigurationArray multi-dimensions, Printer Management UDF
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