How to use extractBetween command?

24 ビュー (過去 30 日間)
Ivan Mich
Ivan Mich 2022 年 5 月 28 日
編集済み: per isakson 2022 年 5 月 29 日
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 Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by