How to extract text between two specific words using fread operation
이전 댓글 표시
I have an data file where i need to extract the text between two specific words
<Edata
Line1
Line2
Edata>
I need to Extract the text content between two specific words e.g. "<Edata" and "Edata>" using fread operation. This file will be in unknown extension file (*.kcs), so i can read only by using file operations. Any Idea..?
답변 (2개)
Image Analyst
2014년 8월 11일
Read the whole thing in using fread, which I assume you know how to do. Then
word1Location = strfind(theString, '<Edata');
word2Location = strfind(theString, 'Edata>');
inBetweenText = theString(word1Location+6:word2Location-1);
댓글 수: 6
Kanchibhotla Chandra Sekhar
2014년 8월 11일
Image Analyst
2014년 8월 11일
The code I gave did not work? It should work but you'll have to have the last line of code in a loop because the first two lines should return arrays with multiple starting and ending locations. Please show your code so we can debug it.
Kanchibhotla Chandra Sekhar
2014년 8월 12일
편집: Kanchibhotla Chandra Sekhar
2014년 8월 12일
Image Analyst
2014년 8월 12일
I don't think you read my last comment at all. Did you? Where is your loop? And why are you searching for <FBD when you should be searching for <Edata?
Kanchibhotla Chandra Sekhar
2014년 8월 12일
Shirisha Acha
2016년 11월 29일
I was looking for the same answer as to how to loop it. Did you solve it yet? Can u plz share the code if so
Walter Roberson
2016년 11월 29일
theString = fileread(OldfilePath);
parts = regexp(theString, '(?<=<Edata\s*\n).*?(?=\nEdata>)', 'match');
I took the liberty here of removing the end-of-line character after and immediately before Edata . The meaning of "between" was not well defined here: what should happen if there is other text on the same line, like
<Edata %first one
line 1
line 2
Edata>
then should the '%first one' be extracted?
카테고리
도움말 센터 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!