Scan a pattern of characters from a string

2 views (last 30 days)
Hello everyone, I have a text file from I am required to scan a pattern (string 'SSD' followed by an integer). I am trying to use the 'regexp' command for this operation. For eg. I have used the command 'fgetl' to store a line which contains the pattern I require. Could you help me with this? I want 'ord1' to find the pattern 'SSD1' from 'tline'! Thank you in advance!
tline = ## Step : SSD1
ord1 = regexp(tline,'(?<=SSDd+)','match');

Accepted Answer

Guillaume
Guillaume on 6 Nov 2015
ord1 = regexp(tline, 'SSD\d+', 'match'); %if you want SSD returned as part of the match
ord1 = regexp(tline, (?<=SSD)\d+', 'match'); %if you just want the number
ord1 = regexp(tline, SSD(\d+), 'tokens', 'once'); just the number, using capture
It is '\d+' to match numbers, the slash is important. '(?<=)' tells the regex engine to look for the pattern preceding a match, but in your regexp you had nothing for the match.

More Answers (1)

Image Analyst
Image Analyst on 6 Nov 2015
Here's an alternate way that is less cryptic than regexp():
tline = '## Step : SSD1'
ssdLocation = strfind(tline, 'SSD') % Find index of SSD
% Extract the end of the string and convert it to a number.
ord1 = str2double(tline(ssdLocation+3:end))

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!