Scan a pattern of characters from a string

2 visualizzazioni (ultimi 30 giorni)
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');

Risposta accettata

Guillaume
Guillaume il 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.

Più risposte (1)

Image Analyst
Image Analyst il 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))

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by