===== Explodex (Function) =====
==== Format ====
variable = **explodex** ( [[stringexpressions|string_expression]] , [[regularexpressions|regular_expression]] )
returns a [[lists|list]] of strings that must be assigned to a [[variables|variable]] or used wherever a list may be used.
==== Description ====
Splits up [[stringexpressions|string_expression]] into substrings wherever the regular expression [[regularexpressions|regular_expression]] occurs. Substrings are stored in array defined in the assignment statement. The array will be re-dimensioned to the exact size to store all of the substrings. Unlike ExPLODE, EXPLODEX allows ignoring specific variations (case sentive, spelling etc), see example below ”[Aa][Nn][Dd]”.
If the regular expression includes capturing groups, using parenthesis, then the array returned will contain the entire string matched by the regular expression in index 0 and each of the captured groups in subsequent elements.
==== Example ====
# explode on regex //[,]* //
a$ = "We all live in a yellow submarine, yellow submarine, yellow, submarine."
w$ = explodex(a$,"[,]* ")
for t = 0 to w$[?]-1
print "w$["+t+"]=" + w$[t]
next t
# explode on regex //[Aa][Nn][Dd]//
a$="1 and 2 AND 3 and 5 aND 99 AND 8.88 aNd 6.45"
n = explodex(a$,"[Aa][Nn][Dd]")
for t = 0 to n[?]-1
print "n["+t+"]=" + n[t]
next t
will display
We all live in a yellow submarine.
w$[0]=We
w$[1]=all
w$[2]=live
w$[3]=in
w$[4]=a
w$[5]=yellow
w$[6]=submarine
w$[7]=yellow
w$[8]=submarine
w$[9]=yellow
w$[10]=submarine.
n[0]=1
n[1]=2
n[2]=3
n[3]=5
n[4]=99
n[5]=8.88
n[6]=6.45
==== Notes ====
By default the nature of regular expressions is "greedy". This behaviour can be changed using the [[regexminimal|RegexMinimal]] statement.
==== See Also ====
{{page>en:start#String Handling&noheader}}
==== History ====
|0.9.6.56|New to Version|
|1.99.99.9|Added Regex Capturing|
|1.99.99.55|now allow explode to be used anywhere a list may be used|