How to extract info from string using regexp?

I have a text file with a number of lines such as:
[DEBUG][HoraCorrelationMatrixNode] Polygon 2303 id 857befored
[DEBUG][HoraCorrelationMatrixNode] Polygon 2304 id 88befored
[DEBUG][HoraCorrelationMatrixNode] Polygon 2305 id 930befored
[DEBUG][HoraCorrelationMatrixNode] Polygon 2306 id 1000d
[DEBUG][HoraCorrelationMatrixNode] Polygon 2307 id 1001d
I need to extract both polygon number (2303) and its id (857befored). How to write a regular expression pattern to obtain both information?
Thanks

댓글 수: 1

@Stephen Cobeldick: It has to be regular expression beccause the txt file also contains line that are formated diferently. I Think that a regular expression is the best solution for this task. I just didn't know how to write the patterns. But thank you for suggestions.

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

 채택된 답변

Guillaume
Guillaume 2019년 5월 22일

0 개 추천

This should work:
filecontent = fileread('c:\somewhere\somefile');
polyid = regexp(filecontent, 'Polygon (\d+) id (\S+)', 'tokens');
polyid = vertcat(polyid{:});
result = table(str2double(polyid(:, 1)), polyid(:, 2), 'VariableNames', {'Polygon', 'ID'})

추가 답변 (1개)

Raghunandan V
Raghunandan V 2019년 5월 22일

0 개 추천

Hi,
Since all the lines are of same format. I would reccomend you to do something like this
str = ['[DEBUG][HoraCorrelationMatrixNode] Polygon 2303 id 857befored']
Polygon_num = str(45:49)
id_num = str(52:end)
This would be easier to implement

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

제품

릴리스

R2018b

태그

질문:

2019년 5월 22일

댓글:

2019년 5월 22일

Community Treasure Hunt

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

Start Hunting!

Translated by