Extract value until regexp case match

조회 수: 1(최근 30일)
Dyel
Dyel 2022년 9월 23일
댓글: Dyel 2022년 9월 26일
Hi,
I have this string. I was hoping to use regexp in order to extract the time and date embedded in this string. I was going to use regexp '.*?<=216', as prior to 216 is all the values I was hoping to extract. I was hoping that there would be an easy way to extract the date and time to a separate cell array. Thanks for any and all help.
"9/12/2022 7:38:51 PM
216 Indicator"
  댓글 수: 2
Dyel
Dyel 2022년 9월 23일
Is there a way using regexp to extract the datetime value, or something similar from a char array?

댓글을 달려면 로그인하십시오.

채택된 답변

Stephen23
Stephen23 2022년 9월 23일
Does the data you want to match always occur at the start of the string?
A = "9/12/2022 7:38:51 PM 216 Indicator";
B = regexp(A,'^\S+\s+\S+\s[AP]M','match','once')
B = "9/12/2022 7:38:51 PM"
T = datetime(B,'inputFormat','d/M/u h:m:s aa')
T = datetime
09-Dec-2022 19:38:51
  댓글 수: 1
Dyel
Dyel 2022년 9월 26일
This did the trick. Thanks Stephen.
How I did it was to split it up using the SplitString fuction, and then convert the string with the date to datetime, in case anyone may find it useful.
for j = 1:length(cf)
loopname = cf(j).name;
filetext = fileread(loopname);
txtStr = convertCharsToStrings(filetext);
indVal{i,j} = cell2mat(regexp(filetext, '(?<=Indicator[^0-9]*)[+-]?[0-9]*\.?[0-9]+', 'match'));
splitStr = regexp(txtStr,'\n','split');
dateStr = splitStr{1};
date = datetime(dateStr);
dateVal{i,j} = date;
end

댓글을 달려면 로그인하십시오.

추가 답변(0개)

범주

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!

Translated by