While we're doing another lap on this topic, I'd like to present a revised one-line-change solution:
Dim RadarPalette() As String = Regex.Split("[^0-9A-F]+", "#" & PaletteString.ToUpperCase & "#")
since the previous suggestion would return empty strings in the first and/or last elements of RadarPalette
if there was a leading and/or trailing separator.
By adding a separator character front and back, we have made the situation more constant: the first and last elements are now *always* empty, and thus the actual palette is in elements
1..RadarPalette.Length-2 rather than the more usual/expected
0..RadarPalette.Length-1
edit: then I realised this is actually a three-line-change solution, because we need to update the For..Next loop and the Map Key, eg:
For I = 1 To RadarPalette.Length - 2 'skip first and last elements since always empty
RadarImagePalette.Put(RadarPalette(I - 1), I - 1) 'array and palette both zero-based, hence "- 1" for each
Next
Spewin!
But I'm not feeling too guilty, because the same problem would have been occurring with the original Regex.Split too :-/