Date: 08.05.19 - 11:36pm
One of the most common tasks you will encounter is the need to extract a string fragment from a larger block.
Its a very simple repetitive task and I generally have just done it inline for many many years. The catch is it does require several tests along the way to make sure it is done safely without error on unexpected input.
Years ago I wrote a StringEx class that handled many things including an extract function, yet I rarely use it since it seems to bulky unless I am really doing some heavy duty string parsing.
I finally got tired and just pulled out the extract routine into its own standalone function for general use. Makes extractions nice safe one liners.
Couple notes I left most args variants for flexibility. marker1 or marker2 can be empty and it will use defaults. I decided to return the extracted string length instead of a simple boolean because its a little bit richer feedback that could be useful (if you were expecting a string of min length in return), just remember to test =0 or > 0 instead of the easier if extract() then or if not. Easy to change to your liking.
The output of the below function is s1 = 's1'; m2 = m2