That's cool! Have you compared the performance of this method with the Tally Oh splitter? Also, I think you need to add a ROW_NUMBER function call to the final select to be able to get the value in the desired ordinal position.
I guess you can't use this approach if the original text contains less than signs, though