Core Function Split
Split( <expression>, <delim/pattern>, <flag> )
Contents |
Description
Splits up a string into substrings depending on the given delimiters.
OR
Splits up a string into substrings depending on the given RegExp pattern.
Parameters
expression
The string to evaluate.
delim/pattern
One or more characters to use as delimiters (case sensitive).
OR
A RegExp match pattern (The pattern is very similar to perl and layed out the same way).
flag
Warning: You can only use the flag if you are NOT using a RegExp pattern as the Delim.
Optional; Changes how the string split works:
flag = 0 (default), each character in the delimiter string will mark where to split the string.
flag = 1, entire delimiter string is needed to mark where to split the string.
flag = 2, the delimiter will be treated as an array and each string in it string is needed to mark where to split the string.
Return Value
Returns an array with each elment ($array[0], $array[1], etc.) contain the delimited strings.
If no delimiters were found an empty array will be returned.
Remarks
If you use a blank string "" for the delimiters, each character will be returned as an element.
If you use a blank RegExp m// for the delim, each character will be returned as an element.
If the delimiter you wish to use is a substring instead of individual single characters, see the example below.
Split is very useful as an alternative to InStr and as a means to populate an array.
Caution if you use the macro @CRLF you are referring to a 2 character string so you will generate extra blanks lines.
Example
To split a string at each , example:
$days = Split("Sun,Mon,Tue,Wed,Thu,Fri,Sat", ","); Foreach( $days as $day ) { println("Element is: " . $day); }
To split a string at each letter example:
$letters = Split("The quick brown FoX", ""); Foreach ( $letters as $letter ) { println("Element is: " . $letter); }
To split a string every time it finds the word "moo" example:
$array = Split("This moo is a string moo ok", "moo", 1); Foreach ( $array as $elem ) { println("Element is: " . $elem); }
You can place the Split directly in the For loop example:
Foreach ( Split("This moo is a string moo ok", "moo", 1) as $elem ) { println("Element is: " . $elem); }
To split the string each time a "<" followed by digits followed by a ">" is found using a RegExp pattern example:
$str = Split("The<12>quick<46>brown<68>fox....", m/<\d+>/); Foreach ( $str as $elem ) { println("Element is: " . $elem); }
Of course you can place the split in the For example:
Foreach ( Split("The<12>quick<46>brown<68>fox....", m/<\d+>/) as $elem ) { println("Element is: " . $elem); }
Now split it using an array of strings to use as the delimiters
$str = Split("The1111quick2222brown2222fox1111jumps2222omg", array("1111", "2222"), 2); Foreach ( $str as $elem ) { println("Element is: " . $elem); }
To see what more patterns you can match go see Regex Match or RegExp functions and read the Remarks.