How to use extractBetween command?

24 次查看(过去 30 天)
Hello,
I have a question about a command I want to use. First I have an input .txt value with many lines. From all the line of the input file I would like to separate the lines that between lines
*** SUMMARY OF DATA ***
and
*** END OF SUMMARY ***
I am attaching the input file
I am using these commands:
yy=(regexp(fileread('input.txt'), '\r?\n', 'split')) .';
mid = extractBetween(string(yy),"*** SUMMARY OF DATA ***","*** END OF SUMMARY ***")
but command window shows me
345×0 empty string array
and does not give me the lines between these phrases I would like.
Could you please help me?

采纳的回答

per isakson
per isakson 2022-5-28
编辑:per isakson 2022-5-29
startStr and endStr must be in the same row (i.e. in a contiguous sequence of characters).
%%
chr = fileread('input.txt');
mid = extractBetween( chr,"*** SUMMARY OF DATA ***","*** END OF SUMMARY ***");
str = strsplit( mid{1}, '\r\n' );
str(1) = []; % empty row because of leading \r\n
str(end) = []; % empty row because of ending \r\n
reshape( str, [],1 )
ans = 17×1 cell array
{' # of points of data 9 = 5' } {' # of points of data 8-9 = 3' } {' # of points of data 8 = 4' } {' # of points of data 7-8 = 9' } {' # of points of data 7 = 1' } {' # of points of data 6-7 = 3' } {' # of points of data 6 = 2' } {' # of points of data 5-6 = 10' } {' # of points of data 5 = 6' } {' # of points of data 4-5 = 1' } {' # of points of data 4 = 6' } {' # of points of data 3-4 = 0' } {' # of points of data 3 = 0' } {' # of points of data 2-3 = 0' } {' # of points of data 2 = 0' } {' # of points rec/no data = 0' } {' # of points not rec = 0'}

更多回答(1 个)

Walter Roberson
Walter Roberson 2022-5-28
Do not do the regexp split until after the extraction

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by