Scan a pattern of characters from a string
조회 수: 2 (최근 30일)
이전 댓글 표시
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');
댓글 수: 0
채택된 답변
Guillaume
2015년 11월 6일
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.
추가 답변 (1개)
Image Analyst
2015년 11월 6일
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))
참고 항목
카테고리
Help Center 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!