雑記用ブログを作りました

最近あまりブログの記事を書いていませんでしたが、色々ルータとか弄っていて気づいたこととかをあまりまとめずに雑記として投稿するブログを作りました。

大破雑記帳

とりあえず書いておく、というレベルのものなので、それが正確なモノなのかどうかは確認していないものがほとんどです。ただ、この鉄PCブログよりも情報が出てくるのは早いと思います。
ある程度情報が溜まってきて、時間とか気力に余裕があれば、まとめたり整理してこちらにも投稿する予定です。

ちなみに、最近OpenWrtをかなり弄ってるので、その関連の記事がしばらく多いと思います。

広告

Visual Studioで正規表現による置換

次はいつ書けるかわからないとか言ったような気がしなくもないですが、気になることがあったので備忘録追加。
今回は、Visual Studioで正規表現を用いて置換を行う方法です。VSのバージョンは2010。
今回弄るのは、以下のHTMLソース。
学校のある課題で使う、Webサイトのモックアップの一部です。

            <table class="tblSearch">
                <colgroup style="width:4.5em"></colgroup><!--商品番号-->
                <colgroup style="width:8em"></colgroup><!--メーカー名-->
                <colgroup style="width:20em" /><!--商品名-->
                <colgroup span="2" style="width:5.5em" /><!--販売価格, 原価, メーカID-->
                <thead>
                    <tr style="text-align:center">
                        <th>商品番号</th>
                        <th>メーカ名</th>
                        <th>商品名</th>
                        <th>販売価格</th>
                        <th>在庫数</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>102</td>
                        <td>Intel</td>
                        <td>PentiumIII 1GHz TRAY(バルク)</td>
                        <td>138000</td>
                        <td>100</td>
                    </tr>
                    <tr>
                        <td>103</td>
                        <td>Intel</td>
                        <td>PentiumIII 500/256 FCPGA リテール版</td>
                        <td>21800</td>
                        <td>100</td>
                    </tr>
                    <tr>
                        <td>104</td>
                        <td>Intel</td>
                        <td>PentiumIII 533/256 FCPGA リテール版</td>
                        <td>価格無し</td>
                        <td>0</td>
                    </tr>
                    <tr>
                        <td>105</td>
                        <td>Intel</td>
                        <td>PentiumIII 533/256</td>
                        <td>19800</td>
                        <td>100</td>
                    </tr>
                    <tr>
                        <td>106</td>
                        <td>Intel</td>
                        <td>PentiumIII 550/256 FCPGA リテール版</td>
                        <td>22800</td>
                        <td>100</td>
                    </tr>
                    <tr>
                        <td>107</td>
                        <td>Intel</td>
                        <td>PentiumIII 550/256 FCPGA</td>
                        <td>21800</td>
                        <td>100</td>
                    </tr>
                </tbody>
            </table>

この中で、表の中の

<td>~</td>

に挟まれているPentium云々を、

 <a href="#">~</a> 

を付けた形に置換したいと思ったのがきっかけです。

とりあえず、お決まりのようにインターネットで情報を漁っていきます。
最初ワイルドカードで調べてたものの、正規表現による置換もチラホラ。あれ、正規表現の方ならできそうジャマイカ。
というわけで調べていきます。
そして最終的に
chikan

  • 検索文字列
    \<td\>{Pentium.*}\</td\>
  • 置換後文字列
    <td><a href="#">\1</a></td>

という感じに。

検索・置換画面で下部の条件にチェックを入れて正規表現を選択して、検索条件や置換後文字列を指定します。
検索文字列では、
・()や

< >

はエスケープ文字でエスケープ処理しなければならない
    例) 「(」→「\n」, 「<」→「\<」 ※環境により、「¥(半角)」はバックスラッシュになったり円マークになったりします。
・正規表現では、ワイルドカードは「*」→「.*」
・検索文字列中で{ }で囲った部分は、{ }ごとに置換後文字列にて「\1」~「\9」まで使える
だそうです。

以上により、上記の検索文字列は、<td>~</td>タグ内にある「Pentium」から始まる文字列を検索する、ということになります。
そして置換文字列は、「\1」で検索文字列で「{ }」で囲われた部分を示し、「Pentium」で始まる文字列をそのまま持ってきて、前後に

<a href="#">~</a>

を付加する、ということになります。

とりあえず、こんな感じで、希望通り置換することができました。
例によってこれで合ってるかは教えて偉い人

そんなわけで今回はここまで。
ではまた次の機会に・・・

バッチファイルにドロップしたファイルをコピー

備忘録的な・・・?
とりあえず、色々と制約の多い学校のPCで、インターネット閲覧が可能なアカウントのフォルダに簡単にファイルをコピーできないものかと調べたところ、バッチファイル(.bat)に行き着いた次第。
ファイルをバッチファイルにドロップしたら、それを指定したフォルダにコピーする方向で組み立てる。
参考にしたサイトはいろいろありすぎて、既にどこに行ったか忘r(ぉぃ
以下とりあえず組んだソース。


@ECHO OFF

IF EXIST %1 GOTO FILEDROP
ECHO ファイルをドロップして下さい
GOTO EXIT

:FILEDROP
ECHO ファイル[%1]がドロップされました。
ECHO C:\Users\Public\Downloads\以下にコピーします
copy %1 C:\Users\Public\Downloads\%~n1%~x1
GOTO EXIT

:EXIT

PAUSE

最初のIF文で、バッチファイルが直接起動されたか、ファイルがドロップされたか判別
ドロップされたファイルがあるときは、下の :FILEDROPまでジャーンプ
ECHOにある%1は、ファイルのフルパスを取得。

例) C:\Users\[ユーザー名]\Downloads\test.txt

そのあと、コピー先のファイル名指定をどうすべきか悩んだものの、とりあえず調べて
ファイル拡張子なしのファイル名(%~n1)+ファイル拡張子(%~x1)で済ませることにしました。これでいいかは教えて偉い人
ちなみに、%~x1 は test.txtとかでファイル名と拡張子を区切ってる . (ドット)も含んでるらしい。

そんなこんなで、とりあえずファイル一つをコピーするバッチファイル組んだけど、複数ファイルをまとめて処理するにはどうしたらいいんだろか。

というわけで今回はこれまで。
また記事を書ける時まで・・・

お知らせ

かなり今更感。
現在、就職活動に伴い、ほとんどPCが触れない状況になっています。それゆえ、ChromecastやWindows Server 2012 R2 Essentials、Windows 8.1などネタはあるにはあるのですが、時間がなく書けずにいますorz
なんとか頑張って就職活動を続けているものの、面接ウワァァな状況でいまひとつ決まらず。。
できる限り、早く復帰できるように頑張りますorz

投稿テスト

ちょっとWordPress.comでどこまでできるのかテスト。主にTwitterの埋め込みの確認。

Windows Live Writerで、埋め込みのコードをソース編集画面で書き込んでそのまま通常編集画面に切り替えずに投稿すると問題なさげ