にしし ふぁくとりー(西村文宏 個人サイト)

Presented by Nishishi via Movable Type. Last Updated: 2015/09/22. 13:21:10.

不要な行末空白やコメント文字列を一括削除する正規表現

EmEditorでの文字列置換で正規表現を使うテキストエディタのEmEditorでは、文字列の検索や置換処理に正規表現が使えます。これを使うと、HTMLソースやプログラムソースなどからコメント部分を一気に削除するとか、行末の不要な空白を一括削除するとかの処理が一発でできて便利です。

コメント部分を一気に削除

/* 」と「 */ 」で挟まれた部分がコメントで、そのコメントをすべて削除したい場合は、検索文字列として以下のように正規表現を書けばOK。

/\*.*\*/

置換文字列を空欄にして実行すれば、コメント部分が綺麗さっぱり一括削除できます。コメント部分にどんな文字列が含まれていても問題ありません。

正規表現で「*」記号は「0回以上」を表す特別な記号ので、「 /* 」や「 */ 」という文字列を表すには「 /\* 」や「 \*/ 」と記述する必要があります。また、「 . 」(ドット)記号は任意の1文字を表すので、「 .* 」で任意の文字列を表せます。つまり正規表現「 /\*.*\*/ 」は、「 /* 」と「 */ 」に挟まれた任意の文字列全体を示します。これを空文字列と置換することで、削除することになります。

無駄な行末の空白文字を一気に削除

行末の無駄な空白を取り除きたい場合は、検索文字列として以下のように正規表現を書きます。

\s+\n

\s」は空白1文字を表して、「\n」は改行を表します。「\s+」は空白が1回以上続く文字列を表します。「\s+\n」は空白が1回以上連続した後に改行されている箇所を示します。
そして、置換後文字列として以下のように改行だけを書きます。

\n

これで、「空白が1回以上連続した後に改行されている箇所」(=行末の空白)が、ただの「改行」に置換されるため、行末の不要な空白文字を取り除くことになります。

文字列の処理には正規表現が激しく便利ですね。
私の場合、Perlでプログラミングしていなかったらたぶん正規表現(の基礎)を覚えることはなかったと思うんですけど、プログラマでなくても正規表現は知っておくと便利かも知れません。

コメント

こんにちは。

いつも楽しく読まさせていただいています。

そういうプログラムはどういうものから

どうやって作るんですか?

かなり初心者っぽいですいません。

投稿者 ひかりんご : 2008年08月24日 18:18

 ブログの内容とは関係なくて申し訳ないのですが、私のパソコンの画面はまだブラウン管で、さすがに液晶に買い替えようかと考えています。
 ただハードウェアが90年代後半に制作されたもので、液晶につないだところで映るかどうか心配です。ハードウェアとモニターをつなぐ端子がJIS規格で決まっているのなら、液晶だけ買い替えればそれで済むと思うのですが、「旧式のハードは液晶画面に対応していない」などの情報はお持ちでしょうか?
 ご教授願います。

投稿者 総情生 : 2008年08月26日 01:26

--- ひかりんごさん:
どういうものから作るかは言語によります。CGIなどで使われるPerlやPHPならテキストエディタで作ることが多いと思います。ソフトウェアを作るためのC/C#/C++言語であればMicrosoft Visual Studioとかの開発環境で、JavaならEclipseなどの開発環境で作ることが多いと思います。(CでもJavaでもテキストエディタだけで書くことも可能ですが。)

ソフトウェアを作ろうと思えば、何らかの統合開発環境があった方がいいですが、ウェブ上とかクライアントPC上だけで動かす小さなスクリプトを作るのであればテキストエディタだけで十分でしょうね。

……って、そういうご質問でしょうか?(^_^;;; 回答になってますかね?^^;

--- 総情生さん:
90年代後半ということはもう10年近くもってるわけですね。そろそろPC本体を買い換えた方がいいんじゃないかと思わなくもないですが。(^_^;;;

液晶ディスプレイ(LCD)の入力端子には、大きくわけて「アナログ」と「デジタル」の2種類があります。製品には、
(1) アナログ入力端子だけがあるLCD
(2) デジタル入力端子だけがあるLCD
(3) アナログとデジタル両方の入力端子があるLCD
……の3種類があります。
アナログ入力端子は、D-Sub 15ピンという端子で、これはブラウン管のディスプレイを接続するのと同じです。
ですから、アナログ入力端子のある製品を買えば、物理的な接続は可能です。

あとは、PC側のビデオボードが出力可能な解像度と、LCD側の解像度が一致していれば問題なく使えます。
ワイドではない液晶(1280×1024解像度の17or19インチとか)を買えば問題ないんじゃないでしょうか。

今後のために、アナログとデジタル両方の入力端子があるLCDを選択するのがお勧めです。価格はそんなに違いません。最近の小さいPCだとデジタル出力しかないものもありますし。アナログは徐々に淘汰されていくでしょう。

※アナログ入力端子とデジタル入力端子に同時に別々のPCを接続すると、LCD1つで2台のPCを切り替えて使うこともできます。LCDによっては正面のボタン1つで簡単に切り替えられるようになっているものもあって便利です。

今使っているPCが、ビデオボードを取り替えられるものであれば、新しいビデオボードを買えば、デジタル接続も可能です。
でも、そうするくらいなら、(10年前のPCを使っているなら)PCごと新しくした方がいいと思います。(^_^;;;

投稿者 にしし : 2008年08月26日 12:41

 親切な解説に感謝です。やはり買い換えた方がいいのですかね。

投稿者 総情生 : 2008年08月26日 19:44

コメント数: 4件

コメント投稿欄 この日記に対するコメント投稿を歓迎します。

保存しますか?



※本文中にURLは書けません。(書くと投稿が拒否されますのでご注意下さい。)

※投稿内容は、実際にページ上に掲載される前に、管理者によって確認される設定にしている場合があります。その場合は、投稿後にその旨が表示されます。たいてい1~2日以内には表示されるはずですので、気長にお待ち願います。m(_ _)m

トラックバック

このエントリーへのトラックバックURLを表示するにはここをクリック
※スパム防止のため、トラックバックURLは別ウインドウで表示します。(JavaScriptが有効でないと表示されません。)

--- 当サイト内を検索 ---