- 259 名前:デフォルトの名無しさん mailto:sage [2015/07/30(木) 01:06:22.86 ID:OBXU0hZ1.net]
- すいません、文字列抽出について質問させてください。
ファイルの中から特定の文字列を抜き出して、それらを結合するバッチを考えています。 凡例として以下のような内容のファイルから、特定文字列「hoge(.*,.*)」を全件抜き出し それらを結合して最終的に「hoge(10,50)++hoge(90,110)++hoge(200,250)」といった文字列を 生成したいです。なお、#より右側はすべてコメント扱いです。 ==========sample.txt # サンプル情報、hoge()抽出 a = hoge(10,50).foo1(int).bar1() b = hoge(90,110).hogehoge() c = hoge(200,250).foo2(int).bar2() a+b+c ========== 各種前提条件として、以下のようなものがあります 1. 対象文字列「hoge(.*,.*)」が出現する行数およびカラム位置は不定 2. 「hoge(.*,.*)」の()の中身は不定長 3. 「hoge(.*,.*)」が一行の中に出現するのは最大一回まで 4. 「hoge(.*,.*)」のさらに後に出てくる「()」の数は不定 5. 検索ファイルの中に「!」が出てくるか不明なため、極力遅延環境変数は使わない findstrだと対象行丸々抽出になってしまい、「hoge(.*,.*)」の部分のみ抽出が できないためforとset、callサブルーチンを組み合わせた文字列操作になるかと思います。 ただ「"hoge("がヒットしてから次に")"がヒットするまでの文字列を抜き出して変数に 格納する」という操作が、私なりに考えてみたもののわかりませんでした。 知恵をお貸しいただけないでしょうか。よろしくお願いします。
|

|