こんにちは
いつも回答ありがとうございます。
1週間ごとの日付と売上などの記載があるメール本文をMailBodyという変数(Str)に格納し、
日付という(Str)で絞り込みを行いたいです。
具体的には
6/26/22 |
1 |
|
-¥1,160 |
|
6/27/22 |
3 |
|
¥6,230 |
|
6/28/22 |
2 |
|
¥5,120 |
|
6/29/22 |
1 |
|
¥1,660 |
|
6/30/22 |
6 |
|
¥20,400 |
|
7/1/22 |
9 |
|
¥22,570 |
|
7/2/22 |
9 |
|
¥18,740 |
|
7/3/22 |
3 |
|
¥8,200 |
|
こちらがMailBodyから出力されたデータで、 |
|
|
|
|
日付の後にある¥以降の値を取ってくるやり方がいまいち分かっておりません。 |
|
|
|
|
正規表現でもうまくいきませんでした |
|
|
|
|
どなたか御教示いただけると幸いです。
Yoichi
(Yoichi)
2
こんにちは
基本的には正規表現で取得できると思います。
正確な文字列が必あるとより良いので、可能であれば、上記メール本文のStringをWriteTextFileでtxtに書き出したものを共有できますでしょうか?
すみません、CSVに変換したものをテキストに書き出してしまいました。
正しくはこちらになります。
テスト.txt (362 Bytes)
Yoichi
(Yoichi)
4
こんにちは
こちらMailBodyの文字列をWriteTextで書き出したものでしょうか?
CSVが変な形でパースされたもののように見えますが...
すみません、CSVに変換したものをテキストに書き出してしまいました。
正しくはこちらになります。
テスト.txt (362 Bytes)
Yoichi
(Yoichi)
6
こんにちは
以下実装例です。正規表現で抽出したものを、一旦Dictionaryに格納しています。
mc = System.Text.RegularExpressions.Regex.Matches(strData,"^\D*(?<Date>\d+/\d+/\d+)[^\\\\]*(?<Amount>\\\d+)",System.Text.RegularExpressions.RegexOptions.Multiline)
dict = mc.Cast(Of System.Text.RegularExpressions.Match).ToDictionary(Function(m) m.Groups("Date").Value,Function(m) m.Groups("Amount").Value)
Sample20220707-2.zip (3.4 KB)
Regards,
system
(system)
Closed
8
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.