今日のお勉強

今日覚えたっぽいことを2つほどメモ。。

  • jsのreplace() の$を使ってみる
  • emacsのalign-regexpを使ってみる


どっちも感動したよ!!(何

replace()の$を使ってみる

やりたかった事的には、「文章を、区切り文字(複数種類ある)を残したまま区切る」という正規表現を使った文字分割だったのですが、
区切り文字を消さない方法が思いつきませんでした。
そこで思い至ったのが、じゃあ区切り文字に区切り文字をつけて区切ればいいんだ!
という文にするとなんだかわからないようなことでした。

やり方的には、
"区切りたい文字列".replace((正規表現),"$1区切り文字");
こんな感じです。
$1というのは、「()」の1個目、とかいう意味らしい。。

例えば「、」と「。」で区切りたいけど、消したくないという時は、

var replace_string = "ほげ、ふがふが。ほげ、ふが。".replace(/([。、])/g, "$1仮区切り文字");
var array_word = replace_string.split("仮区切り文字");
console.log(array_word);


上記のようにすると、下記のように区切り文字を残したまま区切られる、と!
出力結果:

 ["ほげ、", "ふがふが。", "ほげ、", "ふが。", ""]


これ便利ですね・・
まだ$を使った全部の方法は試してませんが、これだけできただけでも感動しました。。
ちなみにPHPでも出来るとのこと。

http://docs.php.net/manual/ja/function.preg-replace.php
に確かに書いてありました・・。
もし使う機会があれば使ってみたいですね♪


参考サイト:
http://1106.suac.net/johoB/JavaScript/jscripts.html#string
のreplace()の項目

align-regexpを使ってみる

これはid:HaSUmiさんから質問をうけて探した結果みつけたものなのですが、(id:HaSUmiさんありがとうございました!)
選択範囲して M-x align-regexp 指定文字 とすると、その指定文字で縦列を揃えてくれます!

例:

hoge : huga
hogehoge : huga
hogehogehuga : hoge
hoge : huga


これを選択範囲で M-x align-regexp[RET]:[RET]

hoge : huga
hogehoge : huga
hogehogehuga : hoge
hoge : huga

こんな感じです!
なんだかymlファイルとかで無駄に使ってしまいそうw
見やすくする為にはとても便利なものだと思いました。
他にもalign-〜ってコマンドがいくつかあったのですが、他はどういう挙動をするのかちょっと気になる所。。
揃える系で何か面倒な事態にであったら、みてみたいと思いました♪