在CSV文件中读取具有特定模式的文本

时间:2016-07-22 23:14:38

标签: matlab csv

我有Excel CSV file,其中包含一些文字和数据。例如,在CSV file中,我有语句,如下所示(每个语句后面都有很多语句和数据。以下两个语句只是一个例子):

1_Q6 - Walmart (https://www.glassdoor.com)
5_Q5 - Phillips 66 (https://www.glassdoor.com)

所以,我希望从第一行的第一个语句中读取"Walmart",在第二行的第二个语句中读取"Phillips 66"。如您所见,这两个单词的位置都有一个模式。它由连字符和空格连续。它有如下模式:

_Qnumber - "The word I am interested in" (

因此,总而言之,我希望阅读由"_Qnumber -"继承并在" ("之后的单词。 "number"始终为5 or 6

我希望你得到我想要实现的目标。我已尝试使用xlsreadtextscan但未成功。

非常感谢您提供的帮助。

2 个答案:

答案 0 :(得分:1)

Textscan对我很有用:

>> type textscan.dat % show contents of file
1_Q6 - Walmart (https://www.glassdoor.com)
5_Q5 - Phillips 66 (https://www.glassdoor.com)

>> f = fopen ('textscan.dat', 'r');        
>> C = textscan (f, '%*u_%*c%u - %s %*[^\n]')
C = 
    [2x1 uint32]    {2x1 cell}
>> C{:}
ans =
           6
           5
ans = 
    'Walmart'
    'Phillips'

PS。不要忘记,如果您需要重新阅读f,则必须先frewind(f)。另外,不要忘记fclose(f)

答案 1 :(得分:0)

http://www.mathworks.com/help/matlab/ref/regexp.html

这些是您正在寻找的功能。