ぼちぼちあしあと

プログラム初心者の備忘録です。

正規表現を使って検索&置換

こんにちは。

ずいぶんご無沙汰しました。

就活がようやく落ち着きました。

結論としては、京都のIT企業で働くことになりました。

全くもってIT初心者なので、この業界で自信は全くありませんが笑、神様が与えてくださったところで神様から必要なものを受け取りつつ、一歩ずつ歩んでいきたいと思います。

正直、就活を始めた頃は全く考えていなかった進路なので、自分でもびっくりです。

最近はpaizaのスキルチェックをちょこちょここなしています。

そっちの話も書きたいのですが、気を遣わないといけないことがたくさんあるので、とりあえず保留中です。

今日はpaizaとは全く関係なく、研究で役に立った話を書こうと思います.

以下のようなデータファイルがあるとします。

A  2.512335  15.542363
B  13.380765  3.453634
C  5.965134  9.663451
D  12.469098  10.687621
(以下略)

このデータファイルの構造としては、アルファベット、半角スペース2つ、データ(小数第6位まで)、半角スペース2つ、データ(小数第6位まで)となっているようです。

このままだと小数点の位置が行によってガタガタしてしまうので、以下のように

A   2.512335  15.542363
B  13.380765   3.453634
C   5.965134   9.663451
D  12.469098  10.687621
(以下略)

のように揃えたくなったとします。

元データの方をよく観察すると、整数部分が1桁のものと2桁のものがあり、1桁の数値の小数点が相対的に左にずれてしまっているようです。

もちろん、ぽちぽちスペースを入れていっても揃えられますが・・・。

そんなときは検索と置換を使わないとやってらんないでしょう。

テキストエディタとしてAtom(あまり使わない)やVScode(よく使う)などがありますが、研究関連ではJedit Ωにお世話になっているので、今回はJedit Ωの検索&置換(正規表現)を用いることにします。

結論としては、以下のようにすればできます。

検索欄( \d.)

※(と\の間に半角スペースが入っていることに注意

置換欄 \1

※\の前に半角スペースが入っていることに注意

ポイントがいくつかあって、

①()で囲った文字列はグループにすることができる。

②\dで任意の(一桁の)数字を表す。[0-9]と同じ。

正規表現において.は任意の一文字を表すので、\でエスケープする。

④置換欄に\1から\9のいずれかを書いた場合、検索で一致したグループ化した文字列の1番目から9番目の文字列と置換される。

Jedit Ωではスペースを表す正規表現は\x20などではなく、スペースそのものである。(なんでやねん)

今回、とりわけ④については勉強になりました。

今日も一つ勉強になりました。

補遺

Jedit Ωは結晶構造とかを可視化するVESTAというソフトと連動させることができるという嬉しい特典がある。(とはいえ実はあんまり連動させたことはない。)

サクサク動くし、デフォルトで矩形選択もできるし、普通にいいエディタだとは思う。

ちょいと複雑な動きをするアニメーションを作ってみた

お久しぶりです。

今回は以前よりもちょいと複雑な動きをするアニメーションを作ってみました。

9VAeで絵を描くことも可能なんですが、絵を描くこと自体には特化していないように思います。

もしかしたら、9VAeだけでも上手に絵を描けるのかもしれませんが、まだそこまでの領域には達していません。 

今回はアニメーションが作れることを確かめたかっただけですので、9VAeで絵を描いてみました。

9VAeは動きをつける専門のソフトぐらいに考えておいた方が良さげな気がします。

花火を全国で打ち上げるという噂があるそうなので、それに便乗しました。

f:id:kseikichi:20200601204915g:plain

花火

細部のズレや色彩等についてはご愛嬌ということで、お許しください。

作り方のポイントとしては動きを入れたいオブジェクトをアニメキャストに入れることですかね。

アニメキャストに入れることで、いくらでも実質のページ数を稼げるので便利です。

アハ体験リベンジ

前回のアハ体験GIFがかなり分かりにくかったので、作り直しました。

今回はアハ体験としてのクオリティも少し上がっております。(GIFのサイズを縮小したら絶妙に難しくなった笑)

f:id:kseikichi:20200524195309g:plain

素材は3年前の伊根の海岸

3箇所変化していますが、すべて分かりますか?

前回、アハ体験GIFを割と楽に作れたのに、作り方を忘れてしまい、今回苦戦した。

ちゃんと作り方覚えておくか、記録しておかないと・・・。

というわけで、アハ体験風GIFは、

①背景ページ(1ページ目)に変化前の写真を貼る

②続きのページとして2ページ目を作り、変化後の写真を貼り、透明にする

③続きのページとして3ページ目を作り、変化後の写真の「透明にする」設定を解除する

で作成できる。

分かればすぐなんだけど、まだ慣れないなあ。

アハ体験風GIF

アハ体験風GIFが作成できることに気が付きました。

はい、例の9VAeを使えば作れるんです。

アハ体験としては物足りないですが(笑)、作れるということが分かっただけで満足です。

この調子で一つずつ技を覚えていきたい!

f:id:kseikichi:20200518211508g:plain

アハ体験

 

はじめてのGIF作成(9VAeきゅうべえ)

ひっさびさに投稿します〜

GIFを簡単に作成できるソフト、9VAe(読み方はきゅうべえ)を使って作品を作っちゃいました!

こういうアニメーションを作りたかったのです。

まだまだ慣れず、途中めげそうになりましたが笑、もうすぐ公開予定と言ってしまったので、後には引けず・・・。

ディテールを気にすればきりがないですが、初めてにしてはよくできたと思います。はい。

f:id:kseikichi:20200517212918g:plain

時計

someメソッドの使い方

今日はsomeメソッドについて。

someメソッドは関数が引数である、いわゆる高階関数

高階関数は、コールバック関数を引数にもつやつ。あってる?

function lessThanTwo(n){
    return n < 2;
}

const arr1 = [1, 2, 3];
console.log(arr1.some(lessThanTwo));

const arr2 = [2, 3, 4];
console.log(arr2.some(lessThanTwo));

出力

true

false

となり、テスト関数を通過する要素が含まれるのかどうかを判定することができる。

if文の条件式にfalsyな値を入れるとif文中の処理は実行されない

今日はタイトルのまんま。

if文の条件式にfalsyな値を入れるとif文中の処理は実行されないということについて。

まず、falsyな値とは、ズバリ、

false

undefined

null

0

NaN

""

の6つ。

これらを条件式に含むようなif文の処理は実行されない。

逆に言うと、上に挙げたもの以外で真偽値ではないものを条件式に入れた場合は、処理は実行される。