Date: Nov 13, 2012 4:56 PM
Author: Kevin Ellis
Subject: Parsing Strings


I have a question regarding parsing strings. Suppose I have a string:

S = '42.714 GAL OF SMALL BOAT FUEL @3.699 PER GAL.'

I have been trying to figure out a way to remove the numbers 42.714 and 3.699 from the string. I have tried using 'sscanf' and 'regexp' to do this. Using regexp I can find the index of the numbers:

idx = regexp(S,'\d')

idx =

1 2 4 5 6 32 34 35 36

But this is not working because the decimal point is not being identified. For my problem, it is not safe to assume that the character in index 3 is always a decimal point. It may just be a blank space. Thus, I was wondering if there was a better way to approach this problem. Again, I am simply looking to remove the numbers from the string (decimal point included). Any help would be much appreciated.