2017-05-22 11 views
0

私は1つの.txtファイルを持ち、データは下のフォーマットで格納されています。ここでtclの ""に基づいてファイル内のstrinsを分割する正規表現を書き込む方法は?

Name : Chetan Age :31 City : Mumbai 

私は、あなたがデータを解析するには、以下のようなものを使用することもできるTCL

Name : Chetan 
Age :31 
City : Mumbai 

を使用して、正規表現を使用して以下のデータを分割し、hashhmap

+0

入力形式と出力形式をよりよく理解するために質問を設定してください。 – Rahul

+1

正規表現を使用しているときに何をしようとしているかについては、あなたは特定する必要があります。どのデータが入力データですか?入力時に複数単語の値が発生するとどうなりますか(たとえば、都市が「ニューデリー」だった場合)?あなたが本当に解析しているものを正確に知ることによってのみ、正しい正規表現を書くことができます。 (あなたのサンプルデータは十分にシンプルですが、最も単純な解決法は、より複雑な入力でさえも失敗するので、もっと詳しく尋ねます) –

+0

'Name'、' Age'と 'City'は固定文字列です。市の名前と名前にはスペースが入った値を持つことができますね。 –

答えて

1

にこのデータを保存したいです。

> set data "Name: Chetan Age:31 City: Mumbai" 
> regexp {Name(?:[\s:]+)(.*\S+)\s+Age(?:[\s:]+)(\d+)\s+City(?:[\s:]+)(.*\S+)} $data - name age city 

> puts "Name:$name\nAge:$age\nCity:$city" 

Name:Chethan 
Age:31 
City:Mumbai 
+0

"接続時間:Mon May 23 02:15:60 2017通話時間「ここ 『00h00m40s接続時間』と 『:通話時間』であり、キーと 『2017年5月23日02:15:60』月 『00h00m40s』」である値は –

+0

感謝を変更するよう、キーは常に一定wheerあり、ここでそれぞれ 値 ここで「接続時間」と「通話時間:」キーと「月月..ですお返事を は、今私は「::月5月23日02:15:60 2017通話時間00h00m40s時間を接続し、」文字列 の下に解析します23 02:15:60 2017 "" 00h00m40s ""はそれぞれ値です ここk値が変更されると、eysは常に一定値になります "May May 23 02:15:60 2017"と "通話時間"(固定空白なし)の間に複数の空白があります –

関連する問題