データを一番下から、上へ順番に並べ替えNo.06920
yamasan さん 12/05/01 08:08
 
こんにちは。いつもお世話になっております。
困った時のフォーラム頼みばかりでスイマセン。お願いします。

ブラウザの履歴が、
10っか月の期間の履歴が残っていまして、Firefoxのアドオンを使い、
HTMLファイルに出しました。59.3MB。
1,022,963行のHTMLファイル。これを各月に分けました。

3〜7MBのHTMLファイルが10個出来ています。
残念ながら、日付時刻が降順で、昇順にならないだろうか。
と、考えております。

長くなりますが、下が、5つの履歴のサンプルです。

\t{4}<tr>\n\t{5}<td colspan=\"3\">\n.+<hr />\n.+</td>\n.+</tr>

で区切られております。
一つ一つのファイルが、この区切りで、4000〜7000個になってしまいます。

これを一番下の履歴から順番に上に持ってくることが、
私にとっては、大変困難な作業になっております。

マクロを考えますが、分かりません。
いつも厚かましいことばかりをお尋ねしております。スイマセン。
ご指導頂く訳には参りませんでしょうか?

私事で恐縮ですが、ある団体の役員をやっており、その事務員さんについての
履歴です。私も役職を離れようと思い、その前に、片付けておきたい仕事です。

他者に示す際に、証拠、データとして、取り扱いたいと考えて、
ご無理なことを言っております。本当に恐縮です。
どうかお知恵をお貸し下さい。よろしくお願いします。


//サンプル
    <tr>
     <td colspan="3">
      <hr />
     </td>
    </tr>
    <tr>
     <td style="white-space: nowrap; vertical-align: top">2012/03/28 15:04:3
5</td>
     <td type="favicon">
      <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAA
Af8/9hAAAC8ElEQVQ4jX3T32tbZRjA8fd/WJNYhbVSsNLlx8lJ5mZJDGNbbKsl69J0S5MWe9OJgm
WIGryQdXgj1YHKpA68mF7uqhW8qFMq04nRrj+2Na5tck6Ss6T50Zz32Lta+HpRGyOID3zhhecD79
UjxN9j7poh65uv5uT7E4b1VgQr6cYaVw5KOLGuJJAfTRlW+rs5c9cMidaRpWLKnHoRmXBjveL/32
TCjflOFFkqpg5+Ns2Q+Vp4XyZV5JgfOebHHPNTS/gox1XKcZVqwkcj6W/uZVLFfPP8fqPRCIjG/M
07jeEezKQPM+mjllDRRhQ2pobIX79K/vo0m6lxtmIeKqNq0zWGe2jM31wU9cvn5M6oj51RH7W4j8
2oh/rteZCSP1bSmHe/b743kr1U4yqHvv7uuBTVvk7qF1TqF1RKMS8b770KUrJ8OcF6xEUm4mLpUg
SkRPvkCsaw0vS1yTCiGu6gFvNSi3nJD3nQbnwIUrL6spPKsJdqzMvDQSfWchrtxgz6kKfpq+EORO
VMB9Wol2rUix7xkJudASlZOfsM5YFnqQ72sB7uxlpOk5udQYt4mr5ypgNROnWU7f5uyqc70YNPsv
5GHKRkaeIlVk44uH/SwY+hLpCS3MdXyQafony6k+3+bkqnjiIe97ZzWLG3nfvHHVi//cyeUWRncY
H64gJ7RpE9o8CvL3SRf/4f/7i3HWGcfILWcs85+MVrY+3tSbauTbNxbZpG+i57RoGlYBeFVj/oRR
QnBmTxuIPDcn47udQlKl/fYuHYEW47j/DT5AhIyYNokHyLLb4+sisKszN38j4Hh2VVBw/OB/nTKI
CUzbbnb7Gm2NBbbOHLzxeFllkL6WFlX1fs6IodTbHzu9vGvRNPs5oYYHm0n5VIgFWXjS3PgdEVO/
pQYD+bzQaEEELkf/g2pZ/1oLltzTZdNjLONh4623jkaiPbstPPBcg/yqT+dZFaZi2kffrBnHaxr5
w7ZuO/0i72lbUvPpvTNK15zn8BPaV1dLvYWFoAAAAASUVORK5CYII=" />
     </td>
     <td style="padding-left: 1em">
      <a href="http://www.goomo.com/#play/002-001-0022">毎日更新の無料動画:
goomo [グーモ]</a>
     </td>
    </tr>
    <tr>
     <td></td>
     <td type="favicon"></td>
     <td style="padding-left: 1em">
      <a href="http://www.goomo.com/#play/002-001-0022">http://www.goomo.com
/#play/002-001-0022</a>
     </td>
    </tr>
    <tr>
     <td colspan="3">
      <hr />
     </td>
    </tr>
    <tr>
     <td style="white-space: nowrap; vertical-align: top">2012/03/28 15:04:3
4</td>
     <td type="favicon">
      <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAA
Af8/9hAAAC8ElEQVQ4jX3T32tbZRjA8fd/WJNYhbVSsNLlx8lJ5mZJDGNbbKsl69J0S5MWe9OJgm
WIGryQdXgj1YHKpA68mF7uqhW8qFMq04nRrj+2Na5tck6Ss6T50Zz32Lta+HpRGyOID3zhhecD79
UjxN9j7poh65uv5uT7E4b1VgQr6cYaVw5KOLGuJJAfTRlW+rs5c9cMidaRpWLKnHoRmXBjveL/32
TCjflOFFkqpg5+Ns2Q+Vp4XyZV5JgfOebHHPNTS/gox1XKcZVqwkcj6W/uZVLFfPP8fqPRCIjG/M
07jeEezKQPM+mjllDRRhQ2pobIX79K/vo0m6lxtmIeKqNq0zWGe2jM31wU9cvn5M6oj51RH7W4j8
2oh/rteZCSP1bSmHe/b743kr1U4yqHvv7uuBTVvk7qF1TqF1RKMS8b770KUrJ8OcF6xEUm4mLpUg
SkRPvkCsaw0vS1yTCiGu6gFvNSi3nJD3nQbnwIUrL6spPKsJdqzMvDQSfWchrtxgz6kKfpq+EORO
VMB9Wol2rUix7xkJudASlZOfsM5YFnqQ72sB7uxlpOk5udQYt4mr5ypgNROnWU7f5uyqc70YNPsv
5GHKRkaeIlVk44uH/SwY+hLpCS3MdXyQafony6k+3+bkqnjiIe97ZzWLG3nfvHHVi//cyeUWRncY
H64gJ7RpE9o8CvL3SRf/4f/7i3HWGcfILWcs85+MVrY+3tSbauTbNxbZpG+i57RoGlYBeFVj/oRR
QnBmTxuIPDcn47udQlKl/fYuHYEW47j/DT5AhIyYNokHyLLb4+sisKszN38j4Hh2VVBw/OB/nTKI
CUzbbnb7Gm2NBbbOHLzxeFllkL6WFlX1fs6IodTbHzu9vGvRNPs5oYYHm0n5VIgFWXjS3PgdEVO/
pQYD+bzQaEEELkf/g2pZ/1oLltzTZdNjLONh4623jkaiPbstPPBcg/yqT+dZFaZi2kffrBnHaxr5
w7ZuO/0i72lbUvPpvTNK15zn8BPaV1dLvYWFoAAAAASUVORK5CYII=" />
     </td>
     <td style="padding-left: 1em">
      <a href="http://www.goomo.com/player/goomo.html#play/002-001-0022">goo
mo</a>
     </td>
    </tr>
    <tr>
     <td></td>
     <td type="favicon"></td>
     <td style="padding-left: 1em">
      <a href="http://www.goomo.com/player/goomo.html#play/002-001-0022">htt
p://www.goomo.com/player/goomo.html#play/002-001-0022</a>
     </td>
    </tr>
    <tr>
     <td colspan="3">
      <hr />
     </td>
    </tr>
    <tr>
     <td style="white-space: nowrap; vertical-align: top">2012/03/28 15:04:2
5</td>
     <td type="favicon">
      <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAA
Af8/9hAAAC8ElEQVQ4jX3T32tbZRjA8fd/WJNYhbVSsNLlx8lJ5mZJDGNbbKsl69J0S5MWe9OJgm
WIGryQdXgj1YHKpA68mF7uqhW8qFMq04nRrj+2Na5tck6Ss6T50Zz32Lta+HpRGyOID3zhhecD79
UjxN9j7poh65uv5uT7E4b1VgQr6cYaVw5KOLGuJJAfTRlW+rs5c9cMidaRpWLKnHoRmXBjveL/32
TCjflOFFkqpg5+Ns2Q+Vp4XyZV5JgfOebHHPNTS/gox1XKcZVqwkcj6W/uZVLFfPP8fqPRCIjG/M
07jeEezKQPM+mjllDRRhQ2pobIX79K/vo0m6lxtmIeKqNq0zWGe2jM31wU9cvn5M6oj51RH7W4j8
2oh/rteZCSP1bSmHe/b743kr1U4yqHvv7uuBTVvk7qF1TqF1RKMS8b770KUrJ8OcF6xEUm4mLpUg
SkRPvkCsaw0vS1yTCiGu6gFvNSi3nJD3nQbnwIUrL6spPKsJdqzMvDQSfWchrtxgz6kKfpq+EORO
VMB9Wol2rUix7xkJudASlZOfsM5YFnqQ72sB7uxlpOk5udQYt4mr5ypgNROnWU7f5uyqc70YNPsv
5GHKRkaeIlVk44uH/SwY+hLpCS3MdXyQafony6k+3+bkqnjiIe97ZzWLG3nfvHHVi//cyeUWRncY
H64gJ7RpE9o8CvL3SRf/4f/7i3HWGcfILWcs85+MVrY+3tSbauTbNxbZpG+i57RoGlYBeFVj/oRR
QnBmTxuIPDcn47udQlKl/fYuHYEW47j/DT5AhIyYNokHyLLb4+sisKszN38j4Hh2VVBw/OB/nTKI
CUzbbnb7Gm2NBbbOHLzxeFllkL6WFlX1fs6IodTbHzu9vGvRNPs5oYYHm0n5VIgFWXjS3PgdEVO/
pQYD+bzQaEEELkf/g2pZ/1oLltzTZdNjLONh4623jkaiPbstPPBcg/yqT+dZFaZi2kffrBnHaxr5
w7ZuO/0i72lbUvPpvTNK15zn8BPaV1dLvYWFoAAAAASUVORK5CYII=" />
     </td>
     <td style="padding-left: 1em">
      <a href="http://www.goomo.com/#play/002-001-0021">学園情報バラエティキ
ャンパス コンシェルジュ/第三回 日本大学生産工学部 編 - goomo</a>
     </td>
    </tr>
    <tr>
     <td></td>
     <td type="favicon"></td>
     <td style="padding-left: 1em">
      <a href="http://www.goomo.com/#play/002-001-0021">http://www.goomo.com
/#play/002-001-0021</a>
     </td>
    </tr>
    <tr>
     <td colspan="3">
      <hr />
     </td>
    </tr>
    <tr>
     <td style="white-space: nowrap; vertical-align: top">2012/03/28 14:57:4
2</td>
     <td type="favicon">
      <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAA
Af8/9hAAAC8ElEQVQ4jX3T32tbZRjA8fd/WJNYhbVSsNLlx8lJ5mZJDGNbbKsl69J0S5MWe9OJgm
WIGryQdXgj1YHKpA68mF7uqhW8qFMq04nRrj+2Na5tck6Ss6T50Zz32Lta+HpRGyOID3zhhecD79
UjxN9j7poh65uv5uT7E4b1VgQr6cYaVw5KOLGuJJAfTRlW+rs5c9cMidaRpWLKnHoRmXBjveL/32
TCjflOFFkqpg5+Ns2Q+Vp4XyZV5JgfOebHHPNTS/gox1XKcZVqwkcj6W/uZVLFfPP8fqPRCIjG/M
07jeEezKQPM+mjllDRRhQ2pobIX79K/vo0m6lxtmIeKqNq0zWGe2jM31wU9cvn5M6oj51RH7W4j8
2oh/rteZCSP1bSmHe/b743kr1U4yqHvv7uuBTVvk7qF1TqF1RKMS8b770KUrJ8OcF6xEUm4mLpUg
SkRPvkCsaw0vS1yTCiGu6gFvNSi3nJD3nQbnwIUrL6spPKsJdqzMvDQSfWchrtxgz6kKfpq+EORO
VMB9Wol2rUix7xkJudASlZOfsM5YFnqQ72sB7uxlpOk5udQYt4mr5ypgNROnWU7f5uyqc70YNPsv
5GHKRkaeIlVk44uH/SwY+hLpCS3MdXyQafony6k+3+bkqnjiIe97ZzWLG3nfvHHVi//cyeUWRncY
H64gJ7RpE9o8CvL3SRf/4f/7i3HWGcfILWcs85+MVrY+3tSbauTbNxbZpG+i57RoGlYBeFVj/oRR
QnBmTxuIPDcn47udQlKl/fYuHYEW47j/DT5AhIyYNokHyLLb4+sisKszN38j4Hh2VVBw/OB/nTKI
CUzbbnb7Gm2NBbbOHLzxeFllkL6WFlX1fs6IodTbHzu9vGvRNPs5oYYHm0n5VIgFWXjS3PgdEVO/
pQYD+bzQaEEELkf/g2pZ/1oLltzTZdNjLONh4623jkaiPbstPPBcg/yqT+dZFaZi2kffrBnHaxr5
w7ZuO/0i72lbUvPpvTNK15zn8BPaV1dLvYWFoAAAAASUVORK5CYII=" />
     </td>
     <td style="padding-left: 1em">
      <a href="http://www.goomo.com/#/play/0/type=aln/programId=def/sharpId=
350/rollId=def/">ギャルモリ#21/上ノ宮編(4) あのブログ炎上の大騒動を暴
露!? - goomo</a>
     </td>
    </tr>
    <tr>
     <td></td>
     <td type="favicon"></td>
     <td style="padding-left: 1em">
      <a href="http://www.goomo.com/#/play/0/type=aln/programId=def/sharpId=
350/rollId=def/">http://www.goomo.com/#/play/0/type=aln/programId=def/sharpI
d=350/rollId=def/</a>
     </td>
    </tr>
//サンプル終わり

[ ]
RE:06920 データを一番下から、上へ順番にNo.06921
秀まるお2 さん 12/05/01 09:15
 
 複数行になってるデータを1行にまとめて、それから変換モジュールでソート
させて、ソートした後のデータを元の複数行に戻す作戦がいいと思います。


 データの中にタブ文字が含まれてないって前提で作戦を作ってみました。

 まずは、<tr>〜</tr>の中にある改行をタブ文字に変換します。

検索: (?<!</tr>)\n
置換: \t

 このままでは1つのデータが3行セットになってるので、さらにそれを1行に
まとめます。

検索: ^(.*colspan="3".*)\n(.*)\n(.*)\n
置換: \1\t\2\t\3\n


 ソートさせる用に、日付を行頭にコピーします。

検索: ^(.*>)(\d{4}/\d{2}/\d{2} \d\d:\d\d:\d\d)(</td.*)$
置換:\2\t\1\2\3


 この段階で、変換モジュールを使ってソートします。


 それから元に戻す用に、まずは行頭の日付を取ります。

検索: ^(.*?\t)(.*)$
置換: \2


 タブ文字を改行に変換します。

検索: \t
置換: \n

 これでどうでしょうか。

[ ]
RE:06921 データを一番下から、上へ順番にNo.06922
yamasan さん 12/05/01 12:05
 
秀まるお2さん、お世話になります。

> 複数行になってるデータを1行にまとめて、それから変換モジュールでソート
>させて、ソートした後のデータを元の複数行に戻す作戦がいいと思います。

ありがとうございます。

お教え頂き、少しだけ、考え方が分かってきました。
上手く置換できましたので、

マクロで、
setcompatiblemode 15;
 gofiletop;
 replaceall "\(\?<\!</tr>\)\\n" , "\\t" , regular, nohilight;
 if( ! result )  beep;
 gofiletop;
 replaceall "\^\(\.\*colspan=\"3\"\.\*\)\\n\(\.\*\)\\n\(\.\*\)\\n" , "\\1\\t
\\2\\t\\3\\n" , regular, nohilight;
 if( ! result )  beep;
 gofiletop;
 replaceall "\^\(\.\*>\)\(\\d\{4\}/\\d\{2\}/\\d\{2\} \\d\\d:\\d\\d:\\d\\d\)\
(</td\.\*\)\$" , "\\2\\t\\1\\2\\3" , regular, nohilight;
 if( ! result )  beep;
 endgroupundo 1;
として、やってみました。ありがとうございます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
もう一度お願いします。

まずは、データですが、
\t{4}<tr>\n\t{5}<td colspan=\"3\">\n.+<hr />\n.+</td>\n.+</tr>
又は、
^(.*colspan="3".*)\n(.*)\n(.*)\n

という箇所が、データ区切りの上でなく、下でした。


> このままでは1つのデータが3行セットになってるので、さらにそれを1行に
>まとめます。
>
>検索: ^(.*colspan="3".*)\n(.*)\n(.*)\n
>置換: \1\t\2\t\3\n

ここを
検索: ^(.*)\n(.*)\n(.*colspan="3".*)\n
置換: \1\t\2\t\3\n

>検索: ^(.*>)(\d{4}/\d{2}/\d{2} \d\d:\d\d:\d\d)(</td.*)$
>置換:\2\t\1\2\3

この箇所は、変更しなくても良いのでは無いかと思いますが、
違いますでしょうかか? 問題なく置換されている気がします。
気がしますというのは、
例外のデータが少々ありまして、区切り線(<hr />)がずれていきます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

そこで、もう一回、少し、言い換えて、相談をさせて下さい。

履歴データの一つ一つを、
^\t{4}.+(.*colspan="3".*)\n
という改行なしの一つのデータにしてから、
日付をコピーする。
と言う方法にしたいのですが、どうしたら良いのか、
ご指導願えませんでしょうか?

タブというのは、全削除しまっても良いのですが、
検索する都合上、必要なものは、作るか、置いておくか、
その辺も、ご指導頂きく訳にはいきませんでしょうか?

自分で案を出したいのですが、現在、頭が一杯一杯で、回転していません。
どうかよろしくお願いします。

[ ]
RE:06922 データを一番下から、上へ順番にNo.06923
秀まるお2 さん 12/05/01 12:16
 
 僕の考えた方法は、元々のデータの中にタブ文字が含まれてないことが前提と
なります。タブ文字が入っているなら、「改行をタブ文字に置き換えて…」って
作戦は全然ダメです。

 この場合は、改行文字を置き換える用の文字を、何か別の文字にすればいいか
と思います。たとえば\x01とかの制御コードにしたらいいんじゃないかと思いま
す。

 元々の作戦の中にある「\t」を全部「\x01」に置き換えてテストしてみたらど
うでしょうか。

 それでいろいろアレンジしていただいて、ダメな所があれば、その部分だけま
た改めて質問するって作戦でどうでしょうか。

[ ]
RE:06923 データを一番下から、上へ順番にNo.06925
yamasan さん 12/05/01 13:06
 
秀まるお2さん、こんにちは。ありがとうございます。
スイマセン。

まずは、タブを先に全削除しました。

次に、
検索:<tr>\n<td colspan=\"3\">\n<hr />\n</td>\n</tr>
置換:<tr><td colspan=\"3\"><hr /></td></tr>
として、データ区切りを一行に置き換えました。

そして、続けてお教え頂いた、
<tr>〜</tr>の中にある改行をタブ文字に変換しました。

 検索: (?<!</tr>)\n
 置換: \t

ここで、気がつきました。3行が一区切りでなく、
2行の場合がありました。

<tr> <td style="white-space: nowrap; vertical-align: top">2011/07/27 16:46:0
4</td> <td type="favicon"> <img src="data:image/png;base64,iVBORw0KGgoAAAANS
UhEUgAAABAAAAAQCAYAAAAf8/9hAAABAklEQVQ4jZ2Sr24CQRDG9w3KG1DIfqN5AypQy054BBSa8
ASImjpMg61oMDsTMHgEorIG0aSKYOpqWtfkKmiP+5OFOyYZsZv7ft98N2tMpO6ebhss2LFSwop57
LtoebHTo/jYTuzgoujPde0F+6yYlRIWeq7gStuSMNNe8MpCDyVXL7hnwc85ca6D7UazslLy8XU4e
/ZipymAFS+VnbMQpZUxxpi+0vAaQC4KB9tlwXtdgFu0mqcoglnl8QWb3I90AZ2rNpBuQmlUb3x8u
oBOCuiF9o1XfEcFghkLvRXvS5O4RavpA8aFvMvStpYRQAoSO2DFnNVOCk/98R/SVxpGAXXqF3WyV
z98O+KtAAAAAElFTkSuQmCC" /> </td> <td style="padding-left: 1em"> <a href="ht
tp://ameblo.jp/karen221/entry-10966009128.html">壁面緑化|ゆうかん香月のブロ
グ</a> </td> </tr>
<tr> <td></td> <td type="favicon"></td> <td style="padding-left: 1em"> <a hr
ef="http://ameblo.jp/karen221/entry-10966009128.html">http://ameblo.jp/karen
221/entry-10966009128.html</a> </td> </tr>
<tr><td colspan="3"><hr /></td></tr>
<tr> <td style="white-space: nowrap; vertical-align: top">2011/07/27 16:46:0
4</td> <td type="favicon" src="default"></td> <td style="padding-left: 1em">
 <a href="http://link.blogmura.com/out/?ch=00834349&item=000216201307&am
p;url=http%3A%2F%2Fameblo.jp%2Fkaren221%2Fentry-10966009128.html">http://lin
k.blogmura.com/out/?ch=00834349&amp;item=000216201307&amp;url=http://ameblo.
jp/karen221/entry-10966009128.html</a> </td> </tr>
<tr><td colspan="3"><hr /></td></tr>

これは、二つのデータですが、上のデータは、
3行。下のデータは、2行です。

検索: ^(.*)\n(.*)\n(.*colspan="3".*)\n
置換: \1\t\2\t\3\n

この置換を
検索:^\f(.*)\n(.*)\n|(.*)\n\f(.*colspan="3".*)\n
としたら、式が間違っているので、検索できなくて先へ進めません。
どうしたら良いでしょう? ご指導下さい。スイマセン。

[ ]
RE:06925 データを一番下から、上へ順番にNo.06926
秀まるお2 さん 12/05/01 13:39
 
 1行目には「2011/07/27 16:46:04」のような日付+時刻の文字列が入っていて、
2行目または3行目にはそれを含まないってルールになりますよね。だとしたら、
そのルールを使えばいいと思います。

 つまり、「2011/07/27 16:46:04」のような文字列を含む行の直前の改行はそ
のままキープして、それ以外の改行はすべてタブ文字に変換です。

 それでやるとしたら、

検索:   \n(?!.*\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}.*)
置換:   \t

 でいけると思います。

[ ]
RE:06926 データを一番下から、上へ順番にNo.06927
yamasan さん 12/05/01 15:45
 
秀まるお2さん、解決しました〜。(^o^)

1.タブを削除。(必要ないかも知れませんが、見易くしたかった)

2.<tr>〜</tr>の中にある改行をタブ文字に。
検索: (?<!</tr>)\n
置換: \t

3.「2011/07/27 16:46:04」のような文字列を含む行の直前の改行はそ
 のままキープして、それ以外の改行はすべてタブ文字に変換
検索:   \n(?!.*\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}.*)
置換:   \t

4.日付を行頭にコピー。
検索: ^(.*>)(\d{4}/\d{2}/\d{2} \d\d:\d\d:\d\d)(</td.*)$
置換:\2\t\1\2\3

5.変換モジュールを使ってソート

6.行頭の日付を取りました。
検索: ^(.*?\t)(.*)$
置換: \2

以上にて、完璧に思ったように、
日付時刻を降順 → 昇順に、変更できました。

こんな面倒なことは出来ないだろうと思っていたので、感動してます。
本当にお世話になりました。ありがとうございました。

[ ]
RE:06927 データを一番下から、上へ順番にNo.06934
yamasan さん 12/05/04 12:06
 
こんにちは。
スイマセン、結果オーライで、気にしてなかったんですが、
正規表現について教えて下さい。


>1.タブを削除。(必要ないかも知れませんが、見易くしたかった)

>4.日付を行頭にコピー。

1.〜4.までを一つのマクロにして、


5.を実行し、
6.を別のマクロにして、やりました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

<tr>〜</tr>の中にある改行をタブ文字に。
検索: (?<!</tr>)\n
置換: \t

カッコ"("の後に、クエスチョンマーク"?"が来てますが、
"?"は、直前の文字を0回もしくは1回。
"!"もマクロで、\!として上手く動作したように思いますので、
メタキャラクタと思います。
!の意味を検索したら、半角スペースとしか出てきません。

検索: (?<!</tr>)\n
の解釈の仕方を教えて下さい。
今後のために、知っておきたいので、
面倒な事を言いますが、お願いします。スイマセン。

[ ]
RE:06934 データを一番下から、上へ順番にNo.06935
h-tom さん 12/05/04 13:02
 

h-tom です。

>検索: (?<!</tr>)\n
>の解釈の仕方を教えて下さい。
「(?<!〜)」は「前方不一致指定」または、「否定戻り読み」といわれる正規表現です。
http://homepage3.nifty.com/kons/hidemaru/helpsite/hmjre/html/0003_ABOUT_REGULAR.html

「(?<!</tr>)\n」は「直前に"</tr>"がない改行("\n")」という意味になります。

[ ]
RE:06935 データを一番下から、上へ順番にNo.06936
yamasan さん 12/05/04 13:23
 
h-tomさん、こんにちは。

>http://homepage3.nifty.com/kons/hidemaru/helpsite/hmjre/html/0003_ABOUT_REGULAR.html

HmJre.dllにおける正規表現と言うのは、理解してませんでした。
一歩前進です。ありがとうございます。


>「(?<!</tr>)\n」は「直前に"</tr>"がない改行("\n")」という意味になります。

そう言われて、理解出来ました。
この様な条件を考えるのも、なかなか思いつかないです。

今後、少しずつ取り入れて、置換できるように勉強します。
ご指導ありがとうございました。

[ ]