2016-07-22 9 views
0

私はExcel CSV fileに何らかのテキストとデータがあります。 CSV fileでは、例えば、私は次のようなステートメントを持っている(私はそれぞれの文の後に多くの書類やデータを持って、次の2文を単なる一例である。):CSVファイルで特定のパターンのテキストを読む

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

だから、私は言葉にのみ"Walmart"からを読みたいです最初の行の最初のステートメントと2番目の行の2番目のステートメントの"Phillips 66"です。あなたが見ることができるように、これらの単語の両方の位置はパターンを持っています。それはハイフンと空白のスペースによって引き継がれます。これは、次のようなパターンがあります。

だから、
_Qnumber - "The word I am interested in" (

は、私が"_Qnumber -"で成功し、" ("が先行する単語を読みたい、要約します。その"number"は常に5 or 6になります。

私はあなたが達成しようとしているものを得ることを望みます。私はすでにxlsreadtextscanを使ってみましたが、成功しませんでした。

ご協力いただきありがとうございます。

答えて

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)を忘れないでください。

+0

私が使用した指定子については説明しません。 MATLABのヘルプファイルを読んで、それは非常に明確です。 :) –

関連する問題